問題タブ [layer-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
23011 参照

android - setBackgroundResource() は XML レイアウト属性を破棄します

のアイテムとして使用されるビューがありますListView。私のカスタム アダプターでView.setBackgroundResource()は、リスト内のアイテムの位置に応じてビューの背景を変更します。(リストの最初と最後のアイテムに別々のアセットを持っています。)

これにより、期待どおりに正しい背景画像が設定されますが、ビューの XML 定義で設定したすべてのパディングが完全に無視されるという厄介な副作用があります。

(XML でバックグラウンド ドローアブルを設定し、アダプターで実行時に変更しない場合、パディングはすべて正常に機能します。)

背景画像を変更し、パディングを保持するにはどうすればよいですか? これはバグですか?

編集他の誰かがここで同じ問題を発見したようです:背景を変更すると、LinearLayout のパディングも変更されますか?

0 投票する
1 に答える
34168 参照

android - android、background、layer-list、スケーラブルなビットマップアイテム

背景として次のドローアブルセットがあります。

すべてのビットマップ(、、、および)が表示されますbase_bgdecoration1decoration2それらのサイズを変更する方法が見つかりません。メインの背景とその上に、dpiに基づいてサイズが異なる装飾が必要です。それを行う簡単な方法はありますか、それとも実際にさまざまなdpi用の「装飾」をたくさん用意する必要がありますか?それは良くありません、そして私は代わりにスケール/サイズ変更オプションを持ちたいです!

android:widthandandroid:height属性は私が見つけたいものですが、機能しないことはわかっています。現在、DPIごとに異なるバージョンを使用していますが、もう少しユーザーフレンドリーになることを望んでいます。

0 投票する
2 に答える
3890 参照

android - Androidでボタンの特定の側面にストロークを適用する方法

ボタンの左側の境界線と右側の境界線だけにストロークを適用するにはどうすればよいですか? アンドロイドで。

次のコードを適用しましたが、機能しません

0 投票する
1 に答える
1350 参照

android - Android 4.2: IllegalstateException: この LayerDrawable の 1 つ以上の子に一定の状態がありません

スマートフォンの Android 4.1 から 4.2 への新しい更新以降、アプリは ViewPager とそのアクティビティを初期化するときに例外をスローします。

例外:

java.lang.IllegalStateException: この LayerDrawable の 1 つ以上の子が一定の状態を持っていません。このドローアブルは変更できません。

スタックトレース:

コード:

tab_bg_selector.xml:

tab_pg_pressed.xml

tab_bg_selected.xml

tab_bg_unselected.xml

「tabs_bg」レイアウトは、res/drawable/tab_bg_selector.xml と同じように、私のレイアウト フォルダーにあります。

Android 4.1 OS 以下では、この例外は発生しません。これは何であり、どうすればそれを取り除くことができますか?

0 投票する
2 に答える
1662 参照

android - AndroidでfindDrawableByLayerIdを使用するには?

ボタンの背景として使用されるレイヤーリストの特定のアイテムに setBounds() を使用したいと考えています。しかし、LayerDrawable オブジェクトを取得して findDrawableByLayerId() を呼び出すことができません。

誰でもこれを解決するのを助けることができますか?

0 投票する
1 に答える
1894 参照

android - ウィジェットのレイヤー リスト内の Drawable を動的に更新する

ウィジェットの構成段階で、レイヤー リストの一部であるビットマップを更新したいと考えています。RemoteViews と Widgets のすべての制限により、これを達成することはできません。新しい LayerDrawable を手動で作成することも、drawable を取得して更新することもできませんでした。アイデアはありますか?

背景: ウィジェットには、写真とその他の情報が表示されます。写真は、正方形、横向き、または縦向きであっても、適切に額縁に入れ、適切に拡大縮小する必要があります。

画層リスト:

ドローアブル @drawable/photo_border は 9 パッチのビットマップです。

レイアウトの対応する部分:

あなたの考えを共有してくれてありがとう。

0 投票する
2 に答える
94689 参照

android - Android を理解する

レイヤーリストの仕組みがわかりません。いくつかの例を含む公式ドキュメントを読みましたが、期待どおりに機能しません。1 dp でパディングする必要がある 4 つの正方形が必要ですが、期待どおりのものはありません。以下は、500% に拡大されたスクリーンショットです。

私のスアレス
(間違った色は関係ありません)
ご覧のとおり、サイズが完全に間違っており、パディングがありません。幅/高さ、右/左/上/下などの実際の値を設定して、Androidが必要なものを確実に取得できるようにしました。

ここに私のxmlがあります:

0 投票する
3 に答える
5439 参照

android - XMLで固定幅のドローアブルを作成することは可能ですか?

各密度に 9 パッチを必要とすることから、XML ドローアブルのみを使用することまで、いくつかのグラフィックを簡素化しようとしています。これはかなり単純なグラフィックです。

9 パッチのドローアブル

2 つのセグメント:

  • 両方のセグメントで幅 8 dp
  • 上部セグメントの高さは 2 dp です
  • 下部セグメントがビューを埋めます
  • 右側は透明で塗りつぶされています

背景画像として設定すると、次の結果が得られます。

リスト項目の例として 9 パッチ

これを XML ドローアブルとして再作成するのは非常に簡単で、5 つの異なる 9 パッチ グラフィックスを作成する必要がないように思われます。ただし、レイヤーリストのドローアブル、インセットのドローアブル、クリップのドローアブルを調べました-それらはすべて、事前にビューのサイズを知っている必要があるようです(たとえば、インセットで2dpに保つには、に設定insetRightする必要がありますビューの幅 - 2dp)。shapeタグのタグも使用してみましsizeたが、それは固定サイズを維持せず、固定比率を維持します (したがって、背の高いビューでは比例してスケーリングされます)。

私は単純なものを見落としていますか、それともレイアウト後にプログラムでチェックする必要がありますか?

0 投票する
3 に答える
8364 参照

android - Android:不透明度を指定する方法

LayerListの不透明度を80にしたいので、次のように記述しました。

しかし、私は得ます:

不透明度を指定するにはどうすればよいですか?

0 投票する
1 に答える
8521 参照

android - プログラムで角の丸いレイヤー リストを作成する

現在、プロジェクト全体で必要に応じて上隅と下隅を設定できるように、次の XML をプログラムで作成するように変換しようとしています。これは、2 つの長方形を持つ単純なレイヤー リストです。重ねて。これをいくつかの異なるビューの背景として使用したいので、結果がスケーリングすることが重要です。

このアプローチはうまくいきますが、角を丸くしたいのか、上、下、両方、角を丸くしたくないのかに応じて、形状ごとに個別の XML が必要です。

同じドローアブルを作成しようとする私の現在の試みでは、一方が他方の上にある 2 つの長方形しか得られませんでした。長方形の位置を設定する方法がわかりませんでした。形状の境界が何に設定されているかに関係なく、目に見える変化は見られませんでした. どんな提案でも大歓迎です。

...