Android:在视图画布上绘制不';行不通

Android:在视图画布上绘制不';行不通,android,canvas,drawing,Android,Canvas,Drawing,我试着在画布上的所有按钮下画一个形状。 代码如下: 我不知道为什么我仍然没有在下面画任何东西的布局。 你知道我做错了什么吗 先走一步 在安卓系统中,您不会以这种方式绘制。一切都是通过方法重写(onDraw)实现的。按照本教程开始: 问候,, Stéphane在android中,你不会这样画。一切都是通过方法重写(onDraw)实现的。按照本教程开始: 问候,, 在您的示例中,您是在画布上绘制视图,而不是在视图的画布上。 您应该使用一种简单的方法,不膨胀布局,而是正常加载,然后找到根容器并设置

我试着在画布上的所有按钮下画一个形状。 代码如下:

我不知道为什么我仍然没有在下面画任何东西的布局。 你知道我做错了什么吗


先走一步

在安卓系统中,您不会以这种方式绘制。一切都是通过方法重写(onDraw)实现的。按照本教程开始:

问候,,
Stéphane

在android中,你不会这样画。一切都是通过方法重写(onDraw)实现的。按照本教程开始:

问候,,
在您的示例中,您是在画布上绘制视图,而不是在视图的画布上。 您应该使用一种简单的方法,不膨胀布局,而是正常加载,然后找到根容器并设置其背景。大概是这样的:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Paint paint = new Paint();
    paint.setColor(Color.MAGENTA);
    Bitmap bgr = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888); 
    Canvas can = new Canvas(bgr);  
    can.drawRect(50, 50, 200, 200, paint);  
    LinearLayout ll = (LinearLayout) findViewById(R.id.ll); 
    ll.setBackgroundDrawable(new BitmapDrawable(bgr));    

}
主要布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:id="@+id/ll">
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>

在您的示例中,您是在画布上而不是在视图的画布上绘制视图。 您应该使用一种简单的方法,不膨胀布局,而是正常加载,然后找到根容器并设置其背景。大概是这样的:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Paint paint = new Paint();
    paint.setColor(Color.MAGENTA);
    Bitmap bgr = Bitmap.createBitmap(480, 800, Bitmap.Config.ARGB_8888); 
    Canvas can = new Canvas(bgr);  
    can.drawRect(50, 50, 200, 200, paint);  
    LinearLayout ll = (LinearLayout) findViewById(R.id.ll); 
    ll.setBackgroundDrawable(new BitmapDrawable(bgr));    

}
主要布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:id="@+id/ll">
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
</LinearLayout>


你能给我们看一张你想做什么的快照吗?你能给我们看一张你想做什么的快照吗?我照你说的做了,但仍然不起作用。我甚至尝试膨胀一个视图,改变它的背景(和布局背景)并再次设置ContentView,但什么都没有。甚至不能设置背景色。XML声明中的任何更改都可以正常工作。有什么问题吗?检查我的编辑,一切都很好。你需要导入红色下划线的类。我的错。。。你是对的!我从参考资料中加载颜色时搞砸了,结果在黑色背景上画出了黑色矩形:|我照你说的做了,但仍然不起作用。我甚至尝试膨胀一个视图,改变它的背景(和布局背景)并再次设置ContentView,但什么都没有。甚至不能设置背景色。XML声明中的任何更改都可以正常工作。有什么问题吗?检查我的编辑,一切都很好。你需要导入红色下划线的类。我的错。。。你是对的!我从参考资料中加载颜色时出错,结果在黑色背景上绘制了黑色矩形:|