[解決済み] TextViewの背景色に関するセレクタ
質問
Androidの背景色を変更しようとしています。
TextView
ウィジェットの背景色を変更しようとしています。そのためにセレクタを作成し、そのセレクタは
res/color/selector.xml
に格納され、おおよそ次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:color="@color/semitransparent_white"
/>
<item
android:color="@color/transparent"
/>
</selector>
は
clickable
の属性は
TextView
は
true
である。
このセレクタを
TextView
として
android:background="@color/selector"
を使用すると、実行時に次のような例外が発生します。
ERROR/AndroidRuntime(13130): 原因: org.xmlpull.v1.XmlPullParserException: バイナリ XML ファイルの行番号 6: タグには 'drawable' 属性または drawable を定義する子タグが必要です。
属性を drawable に変更すると、動作しますが、ID が色参照ではなく画像参照として解釈されるため ("drawable" が示すように)、結果は完全に間違っているように見えます。
私を混乱させるのは、色参照、たとえば "@color/black" を直接 background 属性として設定できることです。これは期待どおりに動作しています。セレクタを使用すると、動作しません。
また、セレクタを
textColor
としても問題なく使用できます。
に背景色セレクタを適用する正しい方法は何ですか?
TextView
に適用する正しい方法は何ですか?
どのように解決するのですか?
ここでの問題は、カラーセレクタを使って背景色を定義することができないことです。 描画可能な セレクタが必要です。つまり、必要な変更は次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/selected_state" />
</selector>
また、そのリソースを
drawable
ディレクトリに移動させる必要があるでしょう。
それから、あなたは
res/drawable/selected_state.xml
ファイルをこのように作成します。
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/semitransparent_white" />
</shape>
で、最後にこのように使うことになります。
android:background="@drawable/selector"
注意
: OP が画像リソースを描画されたのは、おそらくカラーディレクトリにあるリソースを参照しようとしただけで
@drawable
を使用しているため、IDの衝突が起こり、間違ったリソースを選択してしまったのでしょう。
OP がおそらく今までに彼の問題を解決しているとしても、これがまだ誰かの助けになることを願っています。
関連
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] CardView layout_width="match_parent "が親のRecyclerViewの幅と一致しない。
-
[解決済み] Androidのソースコードにある@hideの意味とは?
-
[解決済み] Androidでマイナスマージンを使用するのは悪いことですか?
-
[解決済み] アプリ内課金テスト:android.test.purchased already owned
-
[解決済み] バイト配列の画像ファイルをビットマップに変換するには?
-
[解決済み] onCreate(Bundle savedInstanceState)とは?
-
[解決済み] Android端末がHDPI画面かMDPI画面かを確認する方法は?
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] <string> XMLで改行やタブを作るには(eclipse/android)?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】スイッチのオンカラーを変更する方法
-
[解決済み] Androidの連絡先リストを呼び出すには?
-
[解決済み] Android Studio - あいまいなメソッド呼び出し getClass()
-
[解決済み] 非ActivityクラスでContextを取得する [重複].
-
[解決済み] フラグメント間の値の受け渡し方法
-
[解決済み] RecyclerViewのアイテムに波及効果を追加する
-
[解決済み] 非推奨のandroid.support.v4.app.ActionBarDrawerToggleの置き換え方法
-
[解決済み] BottomNavigationViewを新しいNavControllerで使用する際に、フラグメントを生かす方法はありますか?
-
[解決済み] AsyncTaskLoaderとAsyncTaskの比較
-
[解決済み] サポートライブラリのアクションバーをPreferenceActivityに追加するには?