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

openkk 12年前

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