我不明白如何在android中制作画布。我看了很多教程,我认为我正确地遵循了它们,但我显然没有,因为它仍然无效。以下是我主要活动的代码:
package com.example.dan.shootyguy;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void neato(View view){
Intent intent = new Intent(MainActivity.this, DrawThing.class);
}
}
我认为这部分有效,但它并没有改变应用程序的外观,所以我无法确定。
然后,我有另一个类,我有画布和onDraw:
package com.example.dan.shootyguy;
import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
public class DrawThing extends View{
Paint paint = new Paint(Color.RED);
public DrawThing(Context context) {
super(context);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
canvas.drawOval(25f,25f,25f,25f,paint);
}
}
这应该是一个红圈,但它没有做任何事情。有人可以提供任何帮助吗?感谢。
答案 0 :(得分:1)
查看(DrawThing)不能按意图调用 试试这个......
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DrawThing draw=new DrawThing(this);
setContentView(draw);
}
}
答案 1 :(得分:0)
覆盖onDraw方法很好,你只是没有告诉它画任何东西。
drawOval
void drawOval(向左浮动, 浮顶, 向右漂, 浮底, Paint paint)使用指定的paint绘制指定的椭圆。椭圆形将根据样式填充或框起 在油漆区。
你告诉它canvas.drawOval(25f,25f,25f,25f,paint);这是一个由25,25,25,25界定的椭圆,它的宽度为0,高度为0。换句话说,只是踢出去,不要画任何东西。也许是一个像素但是,这甚至是值得怀疑的。
你可以完全覆盖绘图程序并绘制东西。你只需告诉它可以绘制的东西。