0

ウィジェット付きのアプリを持っていますが、ウィジェットのレイアウトに問題があります。

ウィジェットがアイコンのように見え、デスクトップ上の他のアイコンのようにその下に小さなテキストタグがあるかどうかの基本的な考え方。

TextViewにandroid:backgroundを使用し、描画可能なXMLを使用する1つの例を見つけました。

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#AA111111"/>
<padding android:left="5dp" 
  android:right="5dp"
  android:bottom="1dp" 
  android:top="1dp" />
<corners android:radius="8dp" />
</shape>

ただし、これは見事に機能しません。テキストはデスクトップ上の他のアイコンと同じではなく、電話を回転させるとテキストの一部が切り取られます。

次の問題はウィジェットの選択です。アイコンとしてImageButtonを使用します。android:backgroundを透明な画像に設定します。ウィジェットが選択されたときに画像を変更できる別の描画可能なxmlファイルを使用しています。ただし、アイコンの周りの四角がオレンジ色に変わる、アイコンのデフォルトのアクションを好みます。

これらの2つの効果をどのように達成しますか?アプリの「sms未読カウント」が私が望んでいることを正確に達成するので、どういうわけかそれが可能であることを私は知っています!

4

1 に答える 1

2

私は次のようなことをします:

<LinearLayout>
    <ImageView/>
    <TextView/>
</LinearLayout>

LinearLayout の背景は、<selector>別名StateListDrawableになります。セレクターは透明な背景を指定し、選択するとオレンジに変わります。

LinearLayout は、ユーザーがビュー内の任意の場所をクリックできるようにPendingIntentを設定するビューでもあり、onClick イベントとして登録されます。

レイアウトの問題については、レイアウトをいじって、画像とテキストをホーム画面の他のアイコンのように見せる必要があります。水平方向に中央に配置された ImageView とその下に水平方向に中央に配置された TextView を取得することはそれほど難しくないと思います。次に、ホーム画面の他のアイコンと同じように見えるまで、画像の寸法とテキスト サイズを微調整します。

ホーム画面で横表示に切り替えたときに発生する問題については、横表示モードで正しく表示されるように微調整したレイアウト XML ファイルの横表示バージョンを提供する必要があります。その方法については、この質問に対する私の回答を参照してください。アプリ ウィジェットを作成するときは、通常、縦向きのビューが完璧に見えるようにしてから、そのレイアウト ファイルを layout-land ディレクトリにコピーし、横向きにもしたいようになるまで微調整を開始します。

于 2010-01-26T15:20:46.683 に答える