如何实用地在 Android 中为应用创建叠加层作为水印?

How to create an overlay for app as an watermark in Android pragmatically?

我想制作一个应用程序,其中将有一个水印,该水印将显示在每个 activity 中,包括片段(如果存在)。我想以编程方式做到这一点,没有任何 XML 来减少冗余和样板代码。 它的主要目的是,如果我与其他任何人共享 APK,那么他就无法窃取我的 APK,因为它到处都包含一个奇怪的水印。

您需要创建一个 canvas 对象,然后在其上绘制。 Canvas 将是屏幕的大小,因此您可以测量水印位图的大小。然后在 activity.

中将其渲染为背景图像

我做了一个library for this to do that in a reusable way. Here is documentation on how to use it in Java and Kotlin。首先,从要显示水印的地方activity初始化它-

AppWaterMarkBuilder.doConfigure()
                .setAppCompatActivity(MainActivity.this)
                .setWatermarkProperty(R.layout.layout_water_mark)
                .showWatermarkAfterConfig();

然后您可以在应用程序的任何位置隐藏和显示它 -

  /* For hiding the watermark without callback*/
  AppWaterMarkBuilder.hideWatermark() 

  /* For showing the watermark without callback*/
  AppWaterMarkBuilder.showWatermark()