2011-08-11 46 views
1

我使用ViewFlipper在活动中翻转几个视图。 因此,我包括我在活动布局视图布局以这样的方式ViewFlipper:在视图上画帆布

<ViewFlipper xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/profileSwitcher" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 

    <include android:id="@+id/inc1" layout="@layout/chart" /> 
    <include android:id="@+id/inc2" layout="@layout/temp" /> 


翻转做得很好。

我的布局chart

<?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"> 

<View android:id="@+id/viewChart" android:layout_width="match_parent" 
    android:layout_height="fill_parent" /> 

<TextView android:text="chart" android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:textColor="#fff" /> 

</LinearLayout> 

我想画布上的观点viewChart绘制。所以我想我可以解决活动中的观点与此代码:

viewChart = (View) findViewById(R.id.viewChart); 

    Canvas c = new Canvas(); 
    Paint paint = new Paint(); 
    paint.setStyle(Paint.Style.FILL); 


    paint.setAntiAlias(true); 
    paint.setColor(Color.RED); 
    c.drawCircle(180, 20, 15, paint); 

    viewChart.draw(c); 
    viewChart.invalidate(); 

但执行此操作时,屏幕保持为空(黑,我认为这是主题的背景颜色)。

我的问题是:如何直接在画布上绘制这个视图?我做错了什么?谢谢!

回答

2

首先你的画布应该从位图,这意味着你需要创建一个ViewChart大小的位图,并从中获得画布导出画布C =新的Canvas(MYBITMAP)

其次,由于ViewChart不自定义视图我不认为你可以直接访问它的画布,因此你可以尝试使ViewChart成为一个ImageView,并使用viewChart.setImageBitmap(myBitmap)来设置一个图像(图表),而不是绘制(c )并无效。

+0

感谢您的提示! :) – Andrew