Android(安卓)简单2D绘图
16lz
2021-01-25
因为24点程序,需要自己绘制数字,忽然发现自己多线程方面不是很熟悉,想练下,最好能一个线程画圆,一个线程画直线,后面通过查了下资料,据说是不能实现,就用了别的方法
package com.example.cout24;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.RectF;import android.view.View;public class BackView extends View{private static int lineend=0;private static float startAngle; MainActivity M;public BackView(Context context) {super(context);M=(MainActivity)context;// TODO Auto-generated constructor stub} protected void onDraw(Canvas canvas){ Paint BlackP=new Paint(); BlackP.setColor(getResources().getColor(R.color.Black )); BlackP.setStyle(Paint.Style.STROKE); BlackP.setStrokeWidth(getHeight()/30); Paint NavyP=new Paint(); NavyP.setColor(getResources().getColor(R.color.Navy)); NavyP.setStyle(Paint.Style.STROKE); NavyP.setStrokeWidth(getHeight()/30); RectF rf=new RectF(getWidth()/3, getHeight()/10*5, getWidth()/4*3,getHeight()/10*9); canvas.drawLine(0, getHeight()/5, lineend,getHeight()/5, BlackP); canvas.drawArc(rf, 0, startAngle, true, NavyP); if(lineend<getWidth()||startAngle<360){ lineend+=20; if(startAngle<360){ startAngle+=10; } try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} invalidate(); return; } M.play();// canvas.drawRect(getWidth()/9,getHeight()/8, getWidth()/2,getHeight()/100*44,BlackP); }}
我想把这段绘画的动画放在程序主界面前,跳转方面不知道规范不规范。
protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);BackView b=new BackView(this);setContentView(b); Music.play(this, R.raw.title);}
先用MainActivitysetContentview调用动画,BackView存放着M的context,动画播放完后,再调用M.play(),进入主界面。
更多相关文章
- JAVA线程——选自《Learn Java for Android(安卓)Development》
- Android(安卓)自带的系统分享功能
- Java乔晓松-android中的帧动画FrameByFrame
- GPS 研究(Android2.3)
- Android(安卓)Studio 第一次安装可能遇到的问题
- (转)Android动画学习笔记-Android(安卓)Animation
- 一起学android之设置ListView数据显示的动画效果(24)
- Android(安卓)给Animation设置setRepeatMode不起作用
- Android动画Animation之Tween用代码实现动画效果