Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 更新画布?无效()?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图让我的应用程序从我自定义视图更新画布
此视图在中心创建一个带有线条和圆圈的正方形.
我想按一个按钮并将随机的x和y坐标绘制到画布上.

继承人我的主要活动:

@Override
protected void onCreate(Bundle savedInstanceStatE) {
    super.onCreate(savedInstanceStatE); 
//  EditText numDart = (EditText) findViewById(R.id.numDarts);

    setContentView(R.layout.activity_main);
}

@Override
public Boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main,menu);
    return true;
}

public int convertToDpi(int pX){
    Displaymetrics metrics = getresources().getDisplaymetrics();
    int unit = metrics.widthPixels/20;
    return px * unit;
}
public void drawCanvas(View v){
    View view = (View) findViewById(R.id.canView);
    Paint black = new Paint();
    black.setColor(Color.bLACK);
    black.setStyle(Style.FILL);

    view.invalidate(); //dont kNow where to go from here
}

继承人我的自定义视图:

public CanView(Context context,AttributeSet attrs) {
    super(context,attrs);
    // TODO Auto-generated constructor stub
}

@Override
protected void onDraw(Canvas canvas) {
    // TODO Auto-generated method stub
    super.onDraw(canvas);

    Rect myrect = new Rect();
    myrect.set(-10,10,-10);

    Paint blue = new Paint();
    Paint white = new Paint();
    white.setColor(Color.WHITE);
    white.setStyle(Paint.Style.FILL);

    Paint black = new Paint();
    black.setColor(Color.bLACK);
    black.setStyle(Paint.Style.FILL);

    blue.setColor(Color.bLUE);
    blue.setStyle(Paint.Style.FILL);


    canvas.drawRect(myrect,bluE);
    canvas.drawCircle(convertToDpi(10),convertToDpi(10),convertToDpi(3),whitE);
    canvas.drawLine(convertToDpi(10),convertToDpi(20),black);
    canvas.drawLine(0,black);
    canvas.scale(5,5,0);
}
@Override
public void posTinvalidate() {  //Logic for redrawig goes here??? 
    // TODO Auto-generated method stub
    super.posTinvalidate();
}

public int convertToDpi(int pX){
    Displaymetrics metrics = getresources().getDisplaymetrics();
    int unit = metrics.widthPixels/20;
    return px * unit;
}

我不知道如何从我的自定义视图引用画布并更改或重绘它.我假设你使用invalidate();但我很困惑这种方法如何工作可以帮助我?

解决方法

调用invalidate时再次调用onDraw,你也应该使用this.getHolder().addCallBACk(this);你的类实现CallBACk并添加未实现的方法

大佬总结

以上是大佬教程为你收集整理的android – 更新画布?无效()?全部内容,希望文章能够帮你解决android – 更新画布?无效()?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。