2011-08-11 9 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(); 

しかし、これをやったときに、画面が空のままです(。黒は私はこれがテーマの背景色だと思う):だから、私はこのコードで活動中のビューに対応できると思いました。

私の質問は、キャンバスでこのビューに直接描画する方法ですか?私は間違っているの?ありがとう! ViewChartではないので、あなたのキャンバスは、あなたがViewChartのサイズのビットマップを作成する必要があり、それから、キャンバスを導き出すキャンバスC =新しいキャンバス(myBitmap)第二に

を意味し、ビットマップ、由来しなければならない

答えて

2

ファーストカスタムビュー私はあなたがキャンバスに直接アクセスできるとは思わないので、ViewChartをImageViewにして、draw(c)の代わりにviewChart.setImageBitmap(myBitmap)を使ってイメージ(chart) )無効にする。

+0

あなたのヒントをありがとう! :) – Andrew

関連する問題