1
我想將一個畫布視圖添加到水平滾動視圖內的相對佈局。Android - canvas onDraw不會觸發
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#fff"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/hsv"
android:layout_width="fill_parent"
android:background="#EEDB00"
android:layout_height="30mm">
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/canvas"
android:background="#000"
android:layout_width="300mm"
android:layout_height="20mm">
</RelativeLayout>
</HorizontalScrollView>
</RelativeLayout>
我創建了一個名爲CanvasView類擴展視圖,我用壓倒一切的onDraw()畫了一些基本的形狀。然而畫布不會出現在RelativeLayout的,當我這樣做:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
cView = new CanvasView(this);
rLayout = (RelativeLayout)this.findViewById(R.id.canvas);
rLayout.addView(cView);
}
然而,當我直接調用setContentView(cView);
它的作品添加。在挖掘過程中,我發現當我撥打addView()
時,onDraw()
根本沒有發射,因此畫布沒有繪製出來......關於如何解決這個問題的任何想法?
這工作!非常感謝! – jeffreyveon
這是我遇到的同樣的問題。我發現爲視圖添加背景也很有效。 – raydowe