在屏幕的一部分画在画布上

时间:2014-09-25 18:23:49

标签: java android canvas draw

我想在画布上画一些图片,线条,戒指等但我想在小区域,部分屏幕上制作这个。我有这个布局" activity_main"

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<com.example.canavstest.Draw2d
    android:id="@+id/game"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:layout_gravity="center_vertical|center_horizontal" />

和主要课程

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

}

和我在哪里画画

public class Draw2d extends View{

public Draw2d(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}
protected void onDraw(Canvas canvas){
    super.onDraw(canvas);
    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);
    paint.setColor(Color.BLUE);
    canvas.drawPaint(paint);
}
}

当我尝试启动我的应用程序时,我得到下一个错误

09-25 21:06:43.925: E/AndroidRuntime(28370): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.canavstest/com.example.canavstest.MainActivity}: android.view.InflateException: Binary XML file line #5: Error inflating class com.example.canavstest.Draw2d

我做错了什么?

1 个答案:

答案 0 :(得分:3)

看起来你拼错了你的packageName。检查你的AndroidManifest。

com.example.canavstest.Draw2d

应该是

com.example.canvastest.Draw2d

注意canvas

的拼写

编辑:此外,您还没有实现LayoutInflater调用的构造函数。加上这个。

public Draw2d(Context context, AttributeSet attrs){
    super(context, attrs);
}