akkkka_020829 2019-12-06 23:31 采纳率: 0%
浏览 1506

小白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条回答 默认 最新

  • 王能 2019-12-16 11:11
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 flask项目,怎么使用AJAX传数据库数据到echarts图表的data里,实现异步加载数据。
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题