Hallo, ich möchte meine DrawingSurface-Ansicht transparent machen. Ich habe viele Dinge ausprobiert, aber es funktioniert nicht.
Hier ist mein XML-Code, um meine Oberflächenansicht transparent zu machen
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/icon" >
</ImageView>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#00000000" >
<codewalla.android.drawings.DrawingSurface
android:id="@+id/drawingSurface"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</codewalla.android.drawings.DrawingSurface>
</LinearLayout>
</FrameLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/colorRedBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="R" />
<Button
android:id="@+id/colorBlueBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="G" />
<Button
android:id="@+id/colorGreenBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="B" />
<Button
android:id="@+id/undoBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="U" />
<Button
android:id="@+id/redoBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="10"
android:onClick="onClick"
android:text="R" />
</LinearLayout>
</RelativeLayout>
android
surfaceview
Sunil Pandey
quelle
quelle
Antworten:
Versuchen Sie dies im Konstruktor:
quelle
onCreate()
" lauten , und das Ändern des Pixelformats von RGB565 auf RGB888 ist ebenfalls ziemlich notwendig.Platziert die Oberflächenansicht über dem Fenster, dh Sie können keine Elemente über der Oberflächenansicht hinzufügen.
Wenn Sie Ansichten über der Oberflächenansicht hinzufügen möchten; Sie sollten in Betracht ziehen:
stattdessen. Dadurch wird diese Oberflächenansicht über anderen Oberflächenansichten platziert, jedoch immer noch hinter dem Fenster, sodass Sie weitere sichtbare Ansichten über der Oberflächenansicht hinzufügen können.
quelle
Ist Ihre DrawingSurface und Erweiterung von SurfaceView?
Es gibt keine Möglichkeit, ein SurfaceView dazu zu bringen, das zu tun, was Sie möchten. Die Mechanik der Oberflächenansicht ist so, dass dahinter nichts sichtbar sein kann. (Siehe die Antwort hier http://groups.google.com/group/android-developers/browse_thread/thread/8d88ef9bb22da574 )
Ich habe Ihre Hierarchie mit einer benutzerdefinierten Ansicht getestet, die SurfaceView erweitert, und ich sehe Ihr Problem. Wenn ich zu einer benutzerdefinierten Ansicht wechsle, die einfach die Ansicht erweitert, kann ich Transparenz erhalten.
quelle
TexttureView
wird besser für Ihre Bedürfnisse sein alsSurfaceView
, glaube ich.quelle