カスタム UI ウィジェットに を使用しようとしていLayerDrawable
て、1 つのレイヤーを他のレイヤーとは異なる境界で描画しようとしていますが、機能していないようです。基本的に、私のコードはこれを行います:
int left, top, right, bottom;
/*... do some math ... */
Drawable d = mDrawable.findDrawableByLayerId(R.id.some_specific_layer);
d.setBounds(left, top, right, bottom);
一方、xml は次のようになります。
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="#ff999999" />
</shape>
</item>
<item
android:id="@id/some_specific_layer"
android:drawable="@drawable/some_drawable"/>
したがって、理想的には、境界計算の結果に応じて後ろから表示される灰色の量で、灰色の四角形の上に some_drawable が表示されます。しかし、灰色のレイヤーはまったく表示されません。これは、境界が何らかの形で設定されているためと思われます。
編集
これは、望ましい結果と期待される結果を視覚的に表したものです。
一番上の画像は私が達成したいものです。灰色は最初のレイヤーに対応し、グラデーションは定義済みの 2 番目のレイヤーに対応しid
ます。実際の結果は決して灰色を示しません。
LayerDrawable
他のレイヤーに影響を与えずに、あるレイヤーの境界を設定できるかどうかは誰にもわかりませんか?