小白Android Studio代码运行后模拟器上只有Hello World!
package com.example.firstapp;


import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

import java.util.Random;

public class MyView extends View {

    MyThread mythread;

    private Paint paint;//画笔

    private RectF rectF=new RectF(150,150,380,380);
    private int sweepAngle=0;//弧的当前度数
    private int sweepAngleAdd=20;//每次弧增加的度数
    private Random random=new Random();
    private boolean running=true;//控制循环

    public MyView(Context context, AttributeSet attrs){
        super(context,attrs);
        init(context,attrs);
    }

    public MyView(Context context){
        this(context,null);
    }

    private void init(Context context,AttributeSet attrs){
        paint=new Paint();
        paint.setTextSize(60);
    }

    protected void logic(){
        sweepAngle+=sweepAngleAdd;

        //随机设置画笔颜色
        int r=random.nextInt(255);
        int g=random.nextInt(255);
        int b=random.nextInt(255);
        paint.setARGB(255,r,g,b);

        if(sweepAngle>=360){
            sweepAngle=0;
        }
    }
    private class MyThread extends Thread{
        @Override
        public void run(){
            while(running){
                logic();
                postInvalidate();//重新绘制会调用ondraw()
                try {
                    Thread.sleep(200);
                }catch (InterruptedException e){
                    e.printStackTrace();
                }
            }
        }
    }



    @Override
    protected void onDraw(Canvas canvas){
        Log.i("MyView","onDraw");
        if(mythread==null){
            mythread=new MyThread();
            mythread.start();
        }else{
            /*
            * 第一个参数:rectF 左上的坐标x,y,右下的坐标x,y
            * 第二个参数:弧形开始的角度
            * 第三个参数:弧形结束的角度
            * 第四个参数:true:画扇形,false:画弧线
            * 第五个参数:画笔
            * */
            canvas.drawArc(rectF,0,sweepAngle,true,paint);
        }
    }

    @Override
    protected void onDetachedFromWindow(){
        running=false;
        super.onDetachedFromWindow();
    }
}

模拟器上只有Hello World,写的东西只有MyView类,是不是要加什么,还是代码有错

1个回答

debug或打印一下日志,看看有没有执行,另外任何view都必须重写3个构造,你少了一个

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问