2016-12-05 5 views
0

私は最近アンドロイドdrawableでいくつかのテストを行い、android:srcの動作がパディングにandroid:backgroundと比較して非常に奇妙であることがわかりました。私は私がテストするために使用される他の画像ビューを持っているmainActivityレイアウトの内部android:srcがdrawableのパディングで奇妙に動作するのはなぜですか?

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
     <item> 
      <shape android:shape="oval"> 
       <solid android:color="@color/colorAccent"/> 
       <padding 
        android:top="1dp" 
        android:right="1dp" 
        android:bottom="1dp" 
        android:left="1dp" 
        /> 
      </shape> 
     </item> 
     <item android:top = 2> 
      <shape android:shape="oval"> 
       <solid android:color="@color/white"/> 

      </shape> 
     </item> 
</layer-list> 

は、ここに私の引き出し可能です。私は画像ビューを40dpの幅と高さに設定しました。次に、アンドロイド:srcとアンドロイド:バックグラウンドアトリビュートを上記のmy drawableに設定してテストしました。ここでの結果は次のとおりです。

アンドロイド:SRC

enter image description here

アンドロイド:背景

enter image description here

アンドロイド:私は白を移動するので、あなたが見ることができるように背景が予想される動作であります2を下に丸めて、ピンクの楕円形のパディングにぴったり合ったパディングがあります。ピンク色の楕円の上にあるレイヤーである白い楕円のうちの1番目が表示されないため、アンドロイド:srcはまったく予想外でした。第二に、形は扁平な楕円形に変化します。

これはなぜですか?背景は常にそのビューのための完全な領域をカバーするFitXYのscaleTypeを取るのに対し、あなたはさまざまなオプションにScaleType

を与えることができますandroid:scaleType

答えて

1

src作品。

あなたはSRCと背景と同じ振る舞いをしたい場合は

プットアンドロイド:scaleType = "FitXY"。チェックする必要がある他のオプションもあります。

関連する問題