我有一些,使用或类似的技术 ImageView's
绕过角落似乎太麻烦了。ImageLoader
我可以简单地制作一个LinearLayout
来覆盖图像吗?(或将图像设置为其背景?)例如,如果布局有圆角,它会隐藏下面的图像部分以创建圆角效果吗?
我一直在尝试使用它(特别是使用图像作为背景)并且似乎无法隐藏图像的角落。
我有一些,使用或类似的技术 ImageView's
绕过角落似乎太麻烦了。ImageLoader
我可以简单地制作一个LinearLayout
来覆盖图像吗?(或将图像设置为其背景?)例如,如果布局有圆角,它会隐藏下面的图像部分以创建圆角效果吗?
我一直在尝试使用它(特别是使用图像作为背景)并且似乎无法隐藏图像的角落。
好吧,使用 FrameLayout 或 RelativeLayout,您可以轻松地在 imageview 上堆叠第二层,例如:
<FrameLayout
android:layout_width="60dp"
android:layout_width="60dp">
<ImageView android:id="@+id/myimage"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/myrealimage" />
<ImageView android:id="@+id/my_roundedcorner_overlay"
android:layout_width="60dp"
android:layout_height="60dp"
android:src="@drawable/myoverlaywithroundedcornersandtransparentcenter" />
</FrameLayout>
但是,请注意这会导致过度绘制并使您的布局更加复杂。
您还可以将真实图像设置为 ImageView 的背景,并将叠加层设置为 ImageViews src,但是在这种情况下不要设置填充(也可能不再使用库从 Web 加载图像)
最干净的解决方案是创建一个扩展 ImageView 的自定义小部件并覆盖其 onDraw 方法,使用位图着色器绘制到画布上,类似于http://www.curious-creature.org/2012/12/11/android-recipe-1- image-with-rounded-corners/几乎相同,但只做一次,然后根据需要多次重复使用。
我曾经遇到过同样的问题,只是我想创建一个圆角的谷歌地图,检查这个问题:
诀窍是创建一个FrameLayout
并在其中放置您的内容,然后在其顶部放置另一个9-patch
具有圆角图像背景的布局。
如果您使用通用图像加载器,您可以将图像的角变圆。
DisplayImageOptions options = new DisplayImageOptions.Builder()
.displayer(new RoundedBitmapDisplayer())
.build();
ImageLoader.getInstance().displayImage(imageUrl, imageView, options);