帆布在Java的Android不拉丝 [英] canvas not drawing in java android
本文介绍了帆布在Java的Android不拉丝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我觉得code是正确的,但我无法找到什么错。任何人都可以帮助请搞清楚什么是不正确的?
多数民众赞成在活动文档:
包com.example.crazyeights;进口android.os.Bundle;
进口android.app.Activity;
进口android.view.Menu;公共类CrazyEightsActivity延伸活动{ @覆盖
保护无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
MyView的观点=新的MyView的(本);
的setContentView(视图);
} @覆盖
公共布尔onCreateOptionsMenu(菜单菜单){
//充气菜单;如果是present这增加了项目操作栏。
。getMenuInflater()膨胀(R.menu.crazy_eights,菜单);
返回true;
}}
这就是我想要的屏幕显示:
包com.example.crazyeights;
进口android.content.Context;
进口android.view.View;
进口android.graphics.Canvas;
进口android.graphics.Color;
进口android.graphics.Paint;公共类MyView的扩展视图{ 私人涂料redPaint;
私人诠释circleX;
私人诠释circleY;
私人浮动半径; 公共MyView的(上下文的背景下){
超级(上下文);
redPaint =新的油漆();
redPaint.setAntiAlias(真);
redPaint.setColor(Color.RED);
circleX = 100;
circleY = 100;
半径= 30;
}
保护无效的OnDraw(帆布油画){
canvas.drawCircle(circleX,circleY,半径redPaint);
}
}
解决方案
您指定的大写的OnDraw()方法将不会被调用的方式。实际上,你需要重写的onDraw()方法,使用自定义视图时,例如:
@覆盖
保护无效的onDraw(帆布油画){
canvas.drawCircle(circleX,circleY,半径redPaint);
}
我测试了它,并绘制一个红色圆圈。请参阅自定义绘图 rel=\"nofollow\">这里,特别是替换文档的onDraw()部分。
I think the code is right, but I'm unable to find what's going wrong. Can anyone help please in figuring out what's incorrect ?
Thats the activity document:
package com.example.crazyeights;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class CrazyEightsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyView view = new MyView(this);
setContentView(view);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.crazy_eights, menu);
return true;
}
}
thats what i want to display in the screen:
package com.example.crazyeights;
import android.content.Context;
import android.view.View;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
public class MyView extends View{
private Paint redPaint;
private int circleX;
private int circleY;
private float radius;
public MyView(Context context) {
super(context);
redPaint = new Paint();
redPaint.setAntiAlias(true);
redPaint.setColor(Color.RED);
circleX = 100;
circleY = 100;
radius = 30;
}
protected void OnDraw(Canvas canvas){
canvas.drawCircle(circleX, circleY, radius, redPaint);
}
}
解决方案
The uppercase OnDraw() method you specified will not be called that way. You actually need to override the onDraw() method when using a custom view, e.g:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawCircle(circleX, circleY, radius, redPaint);
}
I tested it and that draws a red circle. See documentation on Custom Drawing here, specifically the Override onDraw() section.
这篇关于帆布在Java的Android不拉丝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文