具有非透明背景图像的ImageView

时间:2015-09-16 02:39:54

标签: android android-layout imageview

我知道很多次问过类似的问题,但这个问题有所不同。我有一个背景图片,我应该将它用于ImageViews。图片不是矩形且不透明,您可以从here查看,或参见下面s http://i57.tinypic.com/2j1qx5t.jpg

这是我尝试过的:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:background="#999999"
          android:padding="10dp"
          android:gravity="center">

    <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="170dp">

        <View
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="@drawable/rounded_background"/>

        <ImageView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:src="@drawable/random_pic"
                android:scaleType="fitXY"/>
    </FrameLayout>
</LinearLayout>

,结果如下:

http://i59.tinypic.com/308w0v8.png

当我删除I​​mageView结果时:

http://i58.tinypic.com/yf0np.png

如您所见,ImageView与背景的形状不同。我也尝试了几种不同的方法,比如

  • 将背景直接放到ImageView或

  • 将视图更改为ImageView并使用圆角图像作为背景或源图像

他们没有效果。我也尝试改变顺序,我已将View放在ImageView之后,但由于圆形背景不透明,我无法看到ImageView,所有我看到的都是白色背景图片。

如果不更改rounded_background.png文件本身就无法实现,对吧?因为我知道,如果背景是透明的,它就会起作用。

由于

编辑:如果不更改图片,则无法实现此目的。如果想要学习实现这一目标的唯一方法,他/她应该看到接受的答案。

1 个答案:

答案 0 :(得分:0)

这是您的问题解决方案。

  1. 让您的背景图片像这样透明。 enter image description here

  2. 将主图像设置为FrameLayout背景图像。

  3. 此背景为ImageView背景图片。

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="170dp"
        android:background="@drawable/randominage">
    
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@drawable/rounded_background"
            android:scaleType="fitXY" />
    </FrameLayout>