android学习--画圆角图

package com.example.imageviewcut;


import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.Menu;
import android.widget.ImageView;


public class MainActivity extends Activity {

private ImageView showimg;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

showimg = (ImageView)this.findViewById(R.id.showimg);

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.background14);

//50代表是圆角的幅度
showimg.setImageBitmap(getRoundCornerImage(bitmap, 50));
}





private Bitmap getRoundCornerImage(Bitmap bitmap, int i) {
// TODO Auto-generated method stub
//创建一个和原图大小一样的位图
Bitmap roundCornerImage = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888);
//创建一张带有位图的画布
Canvas canvas = new Canvas(roundCornerImage);
//创建一支画笔
Paint paint = new Paint();
//创建一个和原图一样的举行
Rect rect = new Rect(0,0,bitmap.getWidth(),bitmap.getHeight());
RectF rectf = new RectF(rect);
//去锯齿
paint.setAntiAlias(false);
//画一个和原图一样的圆角矩形
canvas.drawRoundRect(rectf, i, i, paint);
//设置相交模式,取两层绘制交集。显示上层
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
//把图片放进canvas画布
canvas.drawBitmap(bitmap, null, rect, paint);
return roundCornerImage;
}






@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}


}

你可能感兴趣的:(android,imageview,圆角框)