閱讀489 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android學習筆記之詳細講解畫圓角圖片

Android學習筆記之詳細講解畫圓角圖片

01 package xiaosi.RoundConcer;
02  
03 import android.app.Activity;
04 import android.graphics.Bitmap;
05 import android.graphics.Bitmap.Config;
06 import android.graphics.BitmapFactory;
07 import android.graphics.Canvas;
08 import android.graphics.Paint;
09 import android.graphics.PorterDuff.Mode;
10 import android.graphics.PorterDuffXfermode;
11 import android.graphics.Rect;
12 import android.graphics.RectF;
13 import android.os.Bundle;
14 import android.widget.ImageView;
15  
16 public class RoundConcerActivity extends Activity
17 {
18     /** Called when the activity is first created. */
19     private ImageView roundImage = null;
20     @Override
21     public void onCreate(Bundle savedInstanceState)
22     {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.main);
25          
26         roundImage = (ImageView)findViewById(R.id.roundconcer);
27          
28          
29         Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a);
30         roundImage.setImageBitmap(getRoundCornerImage(bitmap, 50));
31     }
32  
33     public static Bitmap getRoundCornerImage(Bitmap bitmap, int roundPixels)
34     {
35         //創建一個和原始圖片一樣大小位圖
36         Bitmap roundConcerImage = Bitmap.createBitmap(bitmap.getWidth(),
37                 bitmap.getHeight(), Config.ARGB_8888);
38         //創建帶有位圖roundConcerImage的畫布
39         Canvas canvas = new Canvas(roundConcerImage);
40         //創建畫筆
41         Paint paint = new Paint();
42         //創建一個和原始圖片一樣大小的矩形
43         Rect rect = new Rect(00, bitmap.getWidth(), bitmap.getHeight());
44         RectF rectF = new RectF(rect);
45         // 去鋸齒
46         paint.setAntiAlias(true);
47         //畫一個和原始圖片一樣大小的圓角矩形
48         canvas.drawRoundRect(rectF, roundPixels, roundPixels, paint);
49         //設置相交模式
50         paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
51         //把圖片畫到矩形去
52         canvas.drawBitmap(bitmap, null, rect, paint);
53         return roundConcerImage;
54     }
55 }

最後更新:2017-04-02 16:47:59

  上一篇:go Android利用canvas畫各種圖形(點、直線、弧、圓、橢圓、文字、矩形、多邊形、曲線、圓角矩形)
  下一篇:go oracle中對時間的操作以及to_char和to_date用法總結