我想创建一个图像背景,并给它圆角。我有以下代码。背景图片显示但没有圆角。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<corners android:radius="20dp" />
</shape>
</item>
<item>
<bitmap
android:src="@drawable/tabs_pattern_diagonal"
android:tileMode="repeat" />
</item>
</layer-list>
我试过改变时间顺序,但没有区别
修改
我没有imageview。此图层列表将作为linearlayout
的背景应用答案 0 :(得分:1)
如果您不想自己实现圆角,可以使用此library。
答案 1 :(得分:0)
您可以尝试以下操作:
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
final float roundPx = 12;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
您还可以参考article by Romain Guy
答案 2 :(得分:-1)
试试这个:
<item>
<shape android:shape="rectangle" android:padding="10dp" >
<corners
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
</item>
<item>
<bitmap
android:src="@drawable/tabs_pattern_diagonal"
android:tileMode="repeat" />
</item>
</layer-list>