こんにちは、xmlレイアウトによってビットマップ(後でキャンバスに描画される)に定義された複雑なビューを描画しようとしています。そのビューは、データモデルで何かが変更されたときに定期的に更新されます。 静的に定義されたTextViewの変更は完璧ですが、linearLayoutに新しいビューを追加することは何とか機能しません。私のミスはどこですか?キャンバスにレンダリングするときにダイナミックビューの作成が失敗する
これは私が新しいビューを追加してい方法です:
linearLayoutContainer.removeAllViewsInLayout();
for (int i = 0 ; i < 5; i ++) {
TextView child = new TextView(getContext());
child.setText("example" + i);
child.setVisibility(View.VISIBLE);
linearLayoutContainer.addView(child, i , new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT));
i++;
}
これは私がビットマップをクレートい方法です:
sideBarView.refresh();
sideBarView.invalidate();
sideBarBitmap = sideBarView.getDrawingCache();
すでにXMLで定義されたTextViewsを更新するために完璧に動作しているが、新しい追加ビューは表示されません。
私のxmlレイアウトは以下のようになります。
<?xml version="1.0" encoding="utf-8"?>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="some"
android:textSize="20dp" />
<LinearLayout
android:id="@+id/linearLayoutContainer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="0.33"
android:gravity="center_horizontal" >
<!-- THE CONTAINER -->
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:layout_weight="0.66"
android:gravity="center"
android:orientation="horizontal" >
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="2dp"
android:text="20%"
android:textSize="30dp" />
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="3dp"
android:text="35%"
android:textSize="30dp" />
</LinearLayout>
いいえ、ところでgetDrawingCacheはbuildDrawingCacheを呼び出します。.. .thi私の夢は私を狂わせる – joecks