2011-02-06 16 views
0

LayerBrawableをImageButton画像として表示しようとしています。すべてのレイヤーのトップ値が異なる必要があります。 top += 10;などです。このために私はsetLayerInsetをDrawableレイヤーアイテムと併用しましたが、画像を引き伸ばしました。私も別のパラメータで試してみましたが、それはちょうど他のばかげたレイアウトを表示しました。LayerDrawableの画像を持つAndroid ImageButton

私がトップパラメータに独自のコンストラクタを与え、InsetDrawableを使用setLayerInset試行後:

new InsetDrawable(resources.getDrawable(R.drawable.soldier), 0, layerTop, 0, 0); 

この時、トップはOKに見えますが、のImageButtonはそれの非常に小さな領域を表示します。

基本レイアウト、 は

 
*---* 
| | 
*---* 
| | 
*---* 
| | 
*---* 
| | 
| | 
--- 

答えて

0

、レイアウトがあるべき

 
*---* 
| | 
| | 
--- 

、これは私のイメージであるとしましょう、私はandroid:scaleType="fitStart"を設定し、以下のように行を変更し、それは次のように働いていますチャーム。

まず

new InsetDrawable(resources.getDrawable(R.drawable.soldier), 0, layerTop,0,-layerTop); 

今、私はより多くの質問がある

、あなたは私がすべての層のための新しいインスタンスを作成しています見ることができるように。 Drawableオブジェクトを1つだけ作成し、 LayerDrawableの作成に使用される配列のすべての項目に設定し、 layerDrawable.setLayerInset関数を使用してトップとボトムのプロパティを設定すると、より効率的になります。

もう1つは、LayerDrawableオブジェクトにimageButtonよりも大きな項目がある場合、それはイメージを表示します。 CSS overflow:hiddenなどの設定がありますか?

ありがとうございました。

関連する問題