用圆角背景来遮罩ImageView

34

我有一个包含ImageViewTextView自定义ListView。一切都运行良好。

我想要的是在列表中显示的图片是圆角的。从Web服务获取到的图像是矩形的,但我想将其显示为下面的圆角ImageView

enter image description here

有谁能向我展示如何将图像遮罩成圆角?

我已经尝试通过创建以下可绘制文件并将其应用为ImageView中的src来实现,但对我没有任何作用。

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
   <item>
      <shape android:shape="oval" >
         <solid android:color="#FFFFFF" />
         <padding
            android:bottom="10dp"
            android:left="10dp"
            android:right="10dp"
            android:top="10dp" />
         <corners android:radius="5dp" />
      </shape>
   </item>
   <item>
      <shape android:shape="oval" >
         <padding
            android:bottom="5dp"
            android:left="5dp"
            android:right="5dp"
            android:top="5dp" />
         <solid android:color="#FFFFFF" />
      </shape>
   </item>
</layer-list>

已编辑:

enter image description here

我已应用以下解决方案:

<FrameLayout
    android:id="@+id/imagemaskframe"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/op_ivpic"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center"
        android:scaleType="fitXY" />

    <ImageView
        android:id="@+id/iv_mask_op"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@drawable/imgmask" />

</FrameLayout>

11
这不是重复的内容。这是关于对图像进行遮蔽,而不是程序化地改变图像的内容。 - aleb
@GrlsHu,你是如何解决那个问题的?能否帮忙提供一些帮助? - Ali Ashiq
@AliAshiq 我已经标记了能够帮助我解决问题的答案为正确答案。 - GrIsHu
1
@GrIsHu,你是用哪个解决方案的?我也需要一个圆形图像,请帮帮我。 - Ali Ashiq
请查看我的问题。您也可以按照Abhishek Pandey的解决方案。 - GrIsHu
显示剩余3条评论
11个回答

0

这是我做的...但我的背景图片是矩形的。

        ImageView ivLogo;
        ivLogo=(ImageView)fragment.mRoot.findViewById(R.id.iv_offer_logo);

然后在设置图像时,

      if(response.result.Partner.logo_url != null &&                 !response.result.Partner.logo_url.equals("")){
                 ivLogo.setPadding(3,3,3,3);
               DisplayImageOptions options =
                 WWFunctions.getDisplayImage(0);
            ImageLoader imageLoader = ImageLoader.getInstance();
                    imageLoader.init(ImageLoaderConfiguration.createDefault(mOfferDetailsFragment.getActivity() ));
          imageLoader.displayImage(response.result.Partner.logo_url, ivLogo, options);
        }

你使用了哪个API?DisplayImageOptions是什么? - GrIsHu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接