1、在布局中设置
设置边框圆角可以在drawable目录里定义一个xml文件: corners_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 背景颜色 -->
<solid android:color="#FFFFFF" />
<!-- 圆角大小 -->
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
</shape>
然后在布局中将要设置的控间background设置成corners_bg
2、在代码中处理图片
// 将drawable的图转变成Bitmap
Drawable drawable = getResources().getDrawable(R.drawable.d4);
BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
Bitmap bitmap = bitmapDrawable.getBitmap();
// 将图片的四角圆化
public static Bitmap corner(Bitmap bitmap, int px) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
// 得到画布
Canvas canvas = new Canvas(output);
// 将画布的四角圆化
final int color = Color.RED;
final Paint paint = new Paint();
// 得到与图像相同大小的区域 由构造的四个值决定区域的位置以及大小
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
final RectF rectF = new RectF(rect);
paint.setAntiAlias(true);// 抗锯齿
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
// drawRoundRect的第2,3个参数一样则画的是正圆的一角,如果数值不同则是椭圆的一角
canvas.drawRoundRect(rectF, px, px, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}