麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 系統 > Android > 正文

Android開發筆記之:在ImageView上繪制圓環的實現方法

2020-04-11 12:19:43
字體:
來源:轉載
供稿:網友
繪制圓環其實很簡單,有大概以下三種思路. 這里先說網上提到的一種方法。思路是先繪制內圓,然后繪制圓環(圓環的寬度就是paint設置的paint.setStrokeWidth的寬度),最后繪制外圓。
請看核心源碼:
復制代碼 代碼如下:

<SPAN xmlns="http://www.w3.org/1999/xhtml">package yan.guoqi.rectphoto;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.widget.ImageView;
public class DrawImageView extends ImageView {
 private final Paint paint;
 private final Context context; 
 public DrawImageView(Context context, AttributeSet attrs) {
  super(context, attrs);
  // TODO Auto-generated constructor stub
  this.context = context;
  this.paint = new Paint();
  this.paint.setAntiAlias(true); //消除鋸齒
                this.paint.setStyle(Style.STROKE);  //繪制空心圓或 空心矩形
              }
        @Override
 protected void onDraw(Canvas canvas) {
  // TODO Auto-generated method stub
  int center = getWidth()/2;
  int innerCircle = dip2px(context, 83); //內圓半徑
  int ringWidth = dip2px(context, 10);   //圓環寬度

  // 第一種方法繪制圓環
  //繪制內圓
                this.paint.setARGB(255, 138, 43, 226);
  this.paint.setStrokeWidth(2);
  canvas.drawCircle(center, center, innerCircle, this.paint);   

                //繪制圓環
               this.paint.setARGB(255, 138, 43, 226);
  this.paint.setStrokeWidth(ringWidth);
  canvas.drawCircle(center, center, innerCircle + 1 +ringWidth/2, this.paint);   

               //繪制外圓 
  this.paint.setARGB(255, 138, 43, 226);
  this.paint.setStrokeWidth(2);
  canvas.drawCircle(center, center, innerCircle + ringWidth, this.paint);    

                super.onDraw(canvas);

 }
 /* 根據手機的分辨率從 dp 的單位 轉成為 px(像素) */ 
 public static int dip2px(Context context, float dpValue) { 
  final float scale = context.getResources().getDisplayMetrics().density; 
  return (int) (dpValue * scale + 0.5f); 
 } 
}
</SPAN>

總結:
1,這種分三次來繪制的方法,可以將圓環的內圓 圓環 和外圓的顏色設成不一樣的,對paint進行三次設置。還可以將繪制圓環的paint透明度設成10左右就會有圓環透明的效果。
2,三次繪制時的canvas.drawCircle圓心都是(center,center),但三次半徑確實不一樣的。尤其是第二次繪制圓環的時候,半徑是innerCircle + 1 +ringWidth/2。這里的加1是第一次外圓paint.setStrokeWidth(2);寬度設成2,也就是說單條線的寬度1。后面的ringWidth/2也是同理。
示例如下(底色是預覽攝像頭的視頻):



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 在线成人www免费观看视频 | 亚洲第九十九页 | 国产成人精品免高潮在线观看 | 久久久久国 | 国产在线精品一区二区夜色 | 伊人久久国产精品 | 亚洲网站免费看 | 羞羞的小视频 | 欧美老外a级毛片 | 成人h视频在线 | 在火车上摸两乳爽的大叫 | lutube成人福利在线观看污 | 国产精品美女久久久久久网站 | 国产一级毛片在线看 | 鲁人人人鲁人人鲁精品 | 国内精品伊人久久久久网站 | 午夜精品久久久久久中宇 | 欧美中文字幕一区二区 | 免费国产wwwwwww网站 | chinese乱子伦xxxx国语对白 | 亚洲精品一区中文字幕 | 在线视频 欧美日韩 | av电影在线观看网址 | hdhdhdhd19日本人 | 49vv看片免费 | 日韩av官网| 精品一区二区免费视频视频 | 亚洲精品午夜国产va久久成人 | 成人三区四区 | 日韩字幕 | 4p一女两男做爰在线观看 | 羞羞视频免费观看网站 | 久久亚洲精选 | 亚洲性视频 | 黄网站色成年大片免费高 | 久久久久国产一区二区三区不卡 | 伊久在线 | 国产1区2| 国产欧美日韩视频在线观看 | 粉色视频污| freexxxhd喷水|