介绍
这篇文章主要为大家详细介绍了怎么在Android中通过自定义观点实现一个箭头沿圆转动效果,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:
Android是什么
Android是一种基于Linux内核的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由美国谷歌公司和开放手机联盟领导及开发。
具体代码如下所示:
//MyCircleView类 {public class  MyCircleView extends 视图 ,//当前画笔画圆的颜色 ,private int  CurrenCircleBoundColor; ,private Paint 颜料; ,////从xml中获取的颜色 ,private int  circleBundColor; ,private float  circleBoundWidth; ,private float  pivotX; ,private float  pivotY; ,private float 半径=130; ,private float  currentDegree=0; ,private int  currentSpeed=1; ,private boolean  isPause=false; ,public MyCircleView (Context 上下文),{ 超级才能(上下文); initView才能(上下文); ,} ,public MyCircleView (Context 上下文,@Nullable AttributeSet attrs), { 超级才能(上下文,attrs); initView才能(上下文); TypedArray 才能;TypedArray =, context.obtainStyledAttributes (R.styleable.MyCircleView attrs也); for 才能;(int 小姐:=,0;,小姐:& lt;, typedArray.getIndexCount();,我+ +),{ ,,//就是我们自定义的属性的资源id ,,int attr =, typedArray.getIndex(我); ,,switch (attr) { ,,,case R.styleable.MyCircleView_circlr_bound_color: ,,,,circleBundColor =, typedArray.getColor (attr,, Color.RED); ,,,,CurrenCircleBoundColor=circleBundColor; ,,,,休息; ,,,case R.styleable.MyCircleView_circlr_bound_width: ,,,,circleBoundWidth =, typedArray.getDimension (attr, 3); ,,,,休息; ,,} ,,} ,} ,public MyCircleView (Context 上下文,@Nullable AttributeSet attrs,, int defStyleAttr), { 超级才能(上下文,attrs,, defStyleAttr); initView才能(上下文); ,} ,private void  initView (Context 上下文){ paint 才能=,new 油漆(); ,} ,public void 改变颜色(int 颜色){ if 才能;(CurrenCircleBoundColor !=颜色){ ,,CurrenCircleBoundColor=颜色; }else {才能 ,,CurrenCircleBoundColor=circleBundColor; ,,} ,} ,@Override ,protected void  onDraw (Canvas 画布),{ super.onDraw才能(画布); paint.setAntiAlias才能(真正的); paint.setColor才能(CurrenCircleBoundColor); paint.setStrokeWidth才能(circleBoundWidth); paint.setStyle才能(Paint.Style.STROKE); 时间=pivotX 才能;getWidth (),/, 2; pivotY =,才能获得(),/,2; canvas.drawCircle才能(pivotX pivotY,半径、油漆); canvas.save才能();//才能旋转画布,,,如果旋转的的度数大的话,视觉上看着是旋转快的 canvas.rotate才能(currentDegree, pivotX pivotY);//才能提供了一些api可以用来画线(画路径) Path 才能;Path =, new 路径();//才能从哪开始画,从一开始画 path.moveTo才能(pivotX +半径,pivotY);//从一个点才能画一个直线到D点 path.lineTo才能(pivotX + radius-20 pivotY-20);//从D点才能画一个直线到B点 path.lineTo才能(pivotX +半径,pivotY + 20);//从B点才能画一个直线到C点 path.lineTo才能(pivotY-20 pivotX +半径+ 20日);//闭才能合,,,从C点画一个直线到一个点 path.close才能(); paint.setStyle才能(Paint.Style.FILL); paint.setColor才能(Color.BLACK); canvas.drawPath才能(道路、油漆); canvas.restore才能();//才能旋转的度数一个一个度数增加,,如果乘以一个速度的话,按一个速度速度增加 currentDegree才能+=1 * currentSpeed; if 才能;(! isPause) { ,,invalidate (); ,,} ,} ,public void 速度(){ + + currentSpeed才能; if 才能;(currentSpeed>=10) { ,,currentSpeed=10; ,,Toast.makeText (getContext(),“我比闪电还快“,Toast.LENGTH_SHORT),告诉(); ,,} ,} ,public void 放缓(){ ——currentSpeed才能; if 才能;(currentSpeed<=1) { ,,currentSpeed=1; ,,} ,} ,public void  pauseOrStart () {//才能如果是开始状态的话去重新绘制 if 才能;(isPause) { ,,isPause=! isPause; ,,invalidate (); }else {才能 ,,isPause=! isPause; ,,} ,} }//主页面 public class  MainActivity extends AppCompatActivity  { ,//全局变量 ,private MyCircleView  my_view; ,@Override ,protected void  onCreate (Bundle savedInstanceState), { super.onCreate才能(savedInstanceState); null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null怎么在Android中通过自定义观点实现一个箭头沿圆转动效果