2011-08-11 45 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