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个构造,你少了一个

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题