【Android】动态渐变色的扇形
来源:互联网 发布:有招聘淘宝主播的吗 编辑:程序博客网 时间:2024/05/02 02:28
http://bbs.csdn.net/topics/390746097
看到CSDN这一论坛的问题,好奇地去把它解决了。看了一下时间都是一年前了。
MyActivity.java
package com.example.abcd;import android.annotation.SuppressLint;import android.app.Activity;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.DashPathEffect;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Paint.Style;import android.graphics.Path;import android.graphics.PathEffect;import android.graphics.RectF;import android.graphics.Shader;import android.graphics.SweepGradient;import android.os.Bundle;import android.view.View;public class MyActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new SampleView(this)); } @SuppressLint("DrawAllocation")private static class SampleView extends View { private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); private float mRotate; private Matrix mMatrix = new Matrix(); private Shader mShader; public SampleView(Context context) { super(context); setFocusable(true); setFocusableInTouchMode(true); float x = 160; float y = 100; mShader = new SweepGradient(x, y, new int[] {0xFF09F68C, 0xFFB0F44B, 0xFFE8DD30, 0xFFF1CA2E, 0xFFFF902F, 0xFFFF6433}, null); mPaint.setShader(mShader); mPaint.setStyle(Style.STROKE); PathEffect effect = new DashPathEffect(new float[] { 2, 3, 2,3}, 1); mPaint.setPathEffect(effect); mPaint.setStrokeWidth(40); } public void getArc(Canvas canvas,float o_x,float o_y,float r, float startangel,float endangel,Paint paint){ RectF rect = new RectF(o_x - r, o_y - r, o_x + r, o_y + r); Path path = new Path(); path.moveTo(o_x,o_y); path.lineTo((float)(o_x+r*Math.cos(startangel*Math.PI/180)) , (float)(o_y+r*Math.sin(startangel*Math.PI/180))); path.lineTo((float)(o_x+r*Math.cos(endangel*Math.PI/180)) , (float)(o_y+r*Math.sin(endangel*Math.PI/180))); path.addArc(rect, startangel, endangel-startangel); canvas.clipPath(path); canvas.drawCircle(o_x, o_y, r, paint); } @Override protected void onDraw(Canvas canvas) { Paint paint = mPaint; float x = 160; float y = 100; canvas.drawColor(Color.WHITE); mMatrix.setRotate(mRotate, x, y); mShader.setLocalMatrix(mMatrix); mRotate += 3; if (mRotate >= 360) { mRotate = 0; } invalidate(); getArc(canvas,x,y,80,135,405,paint); } }}
0 0
- 【Android】动态渐变色的扇形
- Android 动态渐变圆环 path的使用
- Android动态渐变view的颜色
- Android:动态设置颜色渐变的进度条
- Android 颜色动态渐变
- Android 动态渐变button
- ios创建两色线性径向渐变扇形
- Android--自定义Button的样式以及动态渐变效果
- android 遗忘很久的android 渐变色
- android圆形等分扇形菜单的实现
- Android 一个炫酷的扇形菜单
- 自定义Android扇形的加载ProgressBar
- Flash动态生成扇形
- 动态渐变的滚动条
- android里的渐变色与shape
- 关于android渐变色的配置使用
- Android渐变色的圆弧虚线
- Android状态栏渐变色的实现
- IOS 调用摄像头拍照
- 指令与控制器间的通信详解
- Jquery JS 正确的比较两个数字大小的方法
- (转载的)Matlab textread函数详解
- 机器学习问题方法总结
- 【Android】动态渐变色的扇形
- php摘要认证
- 003三大类库03_Stream
- 如何将当前目录及其子目录下的扩展名相同的文件换名成另一个扩展名?
- 获取session的用户名
- test3.5
- Eclipse中配置Tomcat的内存,防止溢出
- Random r = new Ranmom(47)
- C# 中获取的网页的字符转换问题