android - 如何在现有 View 上叠加图标图像

标签 android image icons overlay

这是一个由两部分组成的问题。

我有一张仓库图片,我想将其分成区域(A、B、C、D、E 和 F),其中每个字母代表仓库中的一个存储空间。如果用户选择存储“B”,那么我想以编程方式在为“B”指定的图像区域上覆盖一个图标。

问题:

  1. 将图像分割为描述每个储藏室的区域的好方法是什么?
  2. 如何以编程方式将图标放置在正确的区域上?

谢谢。

最佳答案

回答1:可以用Framelayout; FrameLayout 是将一个 View 叠加在另一个 View 之上的通用机制。

这是一个例子:

 <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<ImageView  
    android:id="@+id/image"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@drawable/my_image"/>
<View
    android:id="@+id/overlay"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>
</FrameLayout>

然后在您的 Java 代码中,您可以动态设置叠加层的透明度:

View overlay = (View) findViewById(R.id.overlay);
int opacity = 200; // from 0 to 255
overlay.setBackgroundColor(opacity * 0x1000000); // black with a variable alpha
FrameLayout.LayoutParams params =
    new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, 100);
params.gravity = Gravity.BOTTOM;
overlay.setLayoutParams(params);
overlay.invalidate(); // update the view

See here

问题2:在framelayout中,你可以将图标拖到你想要的位置上::如此简单!

希望这有帮助::XD

关于android - 如何在现有 View 上叠加图标图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690836/

相关文章:

html - 异步加载图像

html - 如何为 $img 设置最大高度但保持比例

svg - Stack 3 Font Awesome 图标

ios - iOS 8 iPhone 主屏幕上应用程序图标下方应用程序名称旁边的红点(圆圈)

android - SecurityException 从 Android 库中读取图片

android - WorkManager 支持库版本

android - 谷歌验证工具 : Daily Limit for Unauthenticated Use Exceeded

android - 尝试更改设备配置时找不到 ID XXX 的 View

php - 为什么在我的网络服务器上找不到我的图像?

flutter - 想要在flutter的ListView中显示所有图标