如何设置带圆角的背景图像

时间:2013-09-11 11:04:22

标签: android

我想创建一个图像背景,并给它圆角。我有以下代码。背景图片显示但没有圆角。

<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

的背景应用

3 个答案:

答案 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;
  }

Source

您还可以参考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>