2011-08-31 47 views
2

我试图在所有按钮下的画布上绘制形状。 下面的代码:Android:在视图上绘图画布不起作用

Paint paint = new Paint(); 
paint.setColor(R.color.Kolor); 

View view; 
LayoutInflater inflater = (LayoutInflater) 
getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
view = inflater.inflate(R.layout.menu_glowne, null); 

Canvas can = new Canvas(Bitmap.createBitmap(300, 300, Bitmap.Config.ARGB_8888)); 
can.drawRect(0, 0, 200, 200, paint); 

setContentView(view); 

view.draw(can); 

不知道为什么,我仍然没有得到画下任何布局。 关于我在做什么的任何想法都是错误的?

Thanx提前!

+0

你能告诉我们什么ü正在尝试做一个快照。? – Ronnie

回答

0

在你的榜样,你绘制的视图的画布上,而不是在视图的画布。 你应该使用一个简单的方法,不要膨胀你的布局,但正常加载,然后找到根容器,并设置其背景。事情是这样的:

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> 
+0

我确实喜欢你说过,但它仍然不起作用。我甚至试过inflatin一个视图,改变它的背景(和布局背景)和setContentView再次没有。甚至无法设置背景颜色。 XML声明中的任何更改都能正常工作。任何odeas有什么不对? –

+0

检查我的编辑,它一切正常。您需要导入以红色下划线的类。 – Lumis

+0

我的错......你说得对!我搞砸了从资源加载颜色,并最终在黑色背景上绘制黑色矩形:| –