Android学习笔记之详细讲解画圆角图片

package xiaosi.RoundConcer;

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.widget.ImageView;

public class RoundConcerActivity extends Activity
{
	/** Called when the activity is first created. */
	private ImageView roundImage = null;
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		roundImage = (ImageView)findViewById(R.id.roundconcer);
		
		
		Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a);
		roundImage.setImageBitmap(getRoundCornerImage(bitmap, 50));
	}

	public static Bitmap getRoundCornerImage(Bitmap bitmap, int roundPixels)
	{
		//创建一个和原始图片一样大小位图
		Bitmap roundConcerImage = Bitmap.createBitmap(bitmap.getWidth(),
				bitmap.getHeight(), Config.ARGB_8888);
		//创建带有位图roundConcerImage的画布
		Canvas canvas = new Canvas(roundConcerImage);
		//创建画笔
		Paint paint = new Paint();
		//创建一个和原始图片一样大小的矩形
		Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
		RectF rectF = new RectF(rect);
		// 去锯齿 
		paint.setAntiAlias(true);
		//画一个和原始图片一样大小的圆角矩形
		canvas.drawRoundRect(rectF, roundPixels, roundPixels, paint);
		//设置相交模式
		paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
		//把图片画到矩形去
		canvas.drawBitmap(bitmap, null, rect, paint);
		return roundConcerImage;
	}
}
posted @ 2012-12-28 14:59  天边的星星  阅读(2542)  评论(0编辑  收藏  举报