2012-03-07 4 views
5

現在、私はAndroidアプリケーションを開発しています。であるtransparant三角形を持つので、だから私は、画像に行わ描画可能なレイヤーリスト内のビットマップのサイズを変更

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape>  
      <gradient 
       android:startColor="@color/jaarkleur" 
       android:centerColor="@color/jaarkleur" 
       android:endColor="#E66C2C00" 
       android:angle="0" /> 
      <stroke android:width="1dp" 
      android:color="#ff000000" 
      />  
     </shape> 
    </item> 
    <item> 
     <bitmap android:src="@drawable/overlay_left" android:gravity="left" /> 
    </item> 
    <item> 
     <bitmap android:src="@drawable/overlay_right" android:gravity="right" /> 
    </item> 

</layer-list> 

:私は、次のコードを持っている

_______ 
/______/ 

:私はこのようになります背景とテキスト(ヘッダ)を作りたいです両端に配置される。

これは1行だけのヘッダのために正常に動作しますが、ヘッダは2行を占めたときに、それは次のようになります。

http://i.imgur.com/lDQGo.png

だから、私の質問は:それは可能ですが、ルックスので、両方の画像のサイズを変更するには正しく? ありがとうございました!

+0

あなたは9・パッチを使用してに見たことがありますか? – dmon

+0

はい、私は9パッチを使用したくない、私は '内部'の色変数を保持したいと思います。 – user1255553

答えて

10

私は、コーナーを表す2つの(半透明の)画像を使って解決しました。

XMLは次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item> 
       <shape>  
        <gradient 
         android:startColor="@color/jaarkleur" 
         android:centerColor="@color/jaarkleur" 
         android:endColor="#E66C2C00" 
         android:angle="0" /> 
        <stroke android:width="1dp" 
      android:color="#ff000000" 
      />  
       </shape> 
     </item> 
     <item> 
      <bitmap android:src="@drawable/overlay_left" android:gravity="left|top" /> 
     </item> 
     <item> 
      <bitmap android:src="@drawable/overlay_right" android:gravity="right|bottom" /> 
     </item>   
</layer-list> 
+2

あなたは 'android:gravity =" right | fill_vertical "'と 'android:gravity =" left | fill_vertical "'を使用して、左右のビットマップを垂直方向にスケールすることもできます – grine4ka

1

グラデーション/ボーダーストロークとカスタムイメージのレイヤーリストを使用する代わりに、NinePatchDrawableを使用することを検討してください。

android SDKに付属の便利な9パッチcreaterもあります。

+0

グラデーションカラーを使用したい理由は、変数「jaarkleur」が変更できるためです。この変数を変更して、まったく新しい背景画像を作成する方が簡単です。 – user1255553