安卓自定义view进阶(1)
来源:互联网 发布:java运行环境官网下载 编辑:程序博客网 时间:2024/05/30 23:02
效果图
实现步骤
package com.joey.first.customview.view;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.support.annotation.Nullable;import android.util.AttributeSet;import android.view.View;/** * Created by Administrator on 2017/7/4. */public class CircleView extends View implements Runnable{ private int radiu;//园的半径 private Paint paint; private Context context; float x,y;//圆心坐标 public CircleView(Context context) {//动态代码添加 super(context); this.context = context; initPaint(); } public CircleView(Context context, @Nullable AttributeSet attrs) {//xml布局添加 super(context, attrs); this.context = context; initPaint(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawColor(Color.BLUE); canvas.drawCircle(x,//圆心x坐标 y,//圆心y坐标 radiu,//圆半径 paint);//画笔 } @Override protected void onSizeChanged(int w, int h, int oldw, int oldh) { super.onSizeChanged(w, h, oldw, oldh); x = w/2; y = h/2; } private void initPaint(){ paint = new Paint(); paint.setAntiAlias(true);//设置抗锯齿 paint.setColor(Color.RED);//设置画笔颜色 /** * 设置画笔样式 * Paint.Style.STROKE 描边 * Paint.Style.FILL 填充 * Paint.Style.FILL_AND_STROKE 填充并描边 */ paint.setStyle(Paint.Style.FILL_AND_STROKE); /** * 设置画笔粗细 单位:PX * 注意:当setStrokeWidth(0)的时候描边宽度并不为0而是只占一个像素 */ paint.setStrokeWidth(10); } @Override public void run() { while (true){ try { if (radiu<=150){ radiu += 10; // 刷新View postInvalidate(); }else { radiu = 0; } Thread.sleep(80); } catch (InterruptedException e) { e.printStackTrace(); } } }}
xml布局文件
<com.joey.first.customview.view.CircleView android:id="@+id/view" android:layout_width="300dp" android:layout_height="300dp" />
activity
view = ((CircleView) findViewById(R.id.view)); new Thread(view).start();
此篇仅作为记录学习用,故只有效果图和代码
阅读全文
0 0
- 安卓自定义view进阶(1)
- 安卓自定义View进阶
- 安卓自定义View进阶
- 安卓进阶之自定义View
- 安卓自定义View进阶 - 贝塞尔曲线
- 安卓自定义 View 进阶:贝塞尔曲线
- 安卓自定义View进阶-Matrix原理
- 安卓自定义View进阶-Matrix原理
- 安卓自定义View进阶: 画布操作
- 安卓自定义 View 进阶: 图片文字
- 安卓自定义View进阶-Matrix详解
- 安卓自定义View进阶-Matrix Camera
- 安卓自定义View进阶-Matrix Camera
- 安卓自定义View进阶-PathMeasure
- 安卓自定义View进阶-Matrix原理
- 安卓自定义View进阶-Matrix详解
- 安卓自定义View进阶-Matrix Camera
- 安卓自定义 View 进阶: 图片文字
- OkHttp 使用详情一
- StringBoot + String定时器
- 惊心动魄!程序员们说这些时刻再也不想经历了
- JAVA中clob字段变成String
- extends和implements区别
- 安卓自定义view进阶(1)
- 最长上升连续子序列
- 四元数的基本运算
- 安装JDK+tomcat+jenkins
- BFS:CF356C-Compartments
- safari 浏览器window.history.go(-1)运行无效解决办法
- 网卡驱动程序igb ixgbe 介绍
- 作业
- PAT (Advanced Level) Practise 1088 Rational Arithmetic (20)