1

私はウィジェットをプログラミングしています。誰かがウィジェット ボタンをクリックすると、懐中電灯が点灯します。ウィジェット ボタンをもう一度クリックすると、懐中電灯がオフになります。レイアウトxmlファイルにサーフェスビューがあるため、小さなアプリを作成しました。動作していない私のウィジェット xml で。

これは私の widget_layout.xml です:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

<SurfaceView
    android:id="@+id/surface"
    android:layout_width="1dp"
    android:layout_height="1dp" />

<ImageButton
    android:id="@+id/button"
    android:src="@drawable/off"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_centerInParent="true"
    android:scaleType="center"/>

</FrameLayout>

開発者ページには、次のテキストがあります。

http://developer.android.com/guide/topics/appwidgets/index.html

A RemoteViews object (and, consequently, an App Widget) can support the following layout classes:

FrameLayout
LinearLayout
RelativeLayout
GridLayout

And the following widget classes:

AnalogClock
Button
Chronometer
ImageButton
ImageView
ProgressBar
TextView
ViewFlipper
ListView
GridView
StackView
AdapterViewFlipper

サーフェス ビューを使用できないため、ウィジェット ボタンが機能しません。

4

1 に答える 1

4

サーフェス ビューの代わりにダミーのサーフェス テクスチャを渡す必要があります。例:

これを turnLightOn コードに追加します。

mCamera.setPreviewTexture(新しい SurfaceTexture(0));

于 2014-03-05T14:56:06.090 に答える