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声明中的任何更改都可以正常工作。有什么问题吗?检查我的编辑,一切都很好。你需要导入红色下划线的类。我的错。。。你是对的!我从参考资料中加载颜色时出错,结果在黑色背景上绘制了黑色矩形:|