如何在现有视图上叠加图标图像

时间:2011-04-17 01:22:21

标签: android image icons overlay

这是一个两部分问题。

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

问题:

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

1 个答案:

答案 0 :(得分:1)

答案1:你可以使用Framelayout; FrameLayout是将视图叠加在另一个视图之上的一般机制。

以下是一个例子:

 <?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