2016-03-21 11 views
9

こんにちは私はテーマを設定しているスプラッシュ画面の背景を作成しようとしています。しかし、中央に維持するために使用されたビットマップドロワブルは伸びており、それを正常に保つ方法を理解することはできません。ビットマップが描画可能ty_logopngあるので、ここでレイヤーリストを使用して背景の描画可能なアイコンを作成するとアイコンが伸びる

<style name="TYTheme" parent="SearchActivityTheme.NoActionBar"> 
    <item name="colorPrimaryDark">@color/colorAccentXDark</item> 
    <item name="android:alertDialogTheme">@style/AlertDialogTheme</item> 
    <item name="android:windowBackground">@drawable/splash_screen_bg</item> 
</style> 

:ここ

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 
     <gradient 
      android:angle="360" 
      android:centerColor="@color/colorAccentXDark" 
      android:endColor="@color/Black" 
      android:gradientRadius="500dp" 
      android:startColor="@color/colorAccentXDark" 
      android:type="radial" 
      android:useLevel="false" /> 
    </shape> 
</item> 
<item 
    android:bottom="50dp" 
    android:top="50dp"> 
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:innerRadius="500dp" 
     android:innerRadiusRatio="1" 
     android:shape="oval"> 
     <gradient 
      android:angle="360" 
      android:centerColor="@color/colorAccentXDark" 
      android:endColor="@color/colorAccentXDark" 
      android:gradientRadius="400dp" 
      android:startColor="@color/colorAccent" 
      android:type="radial" 
      android:useLevel="false" /> 
    </shape> 
</item> 
<item android:gravity="center"> 
    <bitmap android:src="@drawable/ty_logo" /> 
</item> 
</layer-list> 

は、私が活動の背景として、この描画可能に設定していたコードである splash_screen_bg.xml:以下は私の引き出し可能コードです私の電話では伸びている。 bitmapDrawableにはscaleTypeオプションがないので、どのように処理するのか分かりません。

+1

この質問に対する回答はありましたか。私は今、同じ問題を抱えており、解決策を見つけることができません。 – baal

+0

まだ解決策が得られていません。 – himanshu1496

答えて

2

ScaleDrawable<scale>にビットマップをラップし、LayerListDrawableScaleDrawableを使用できます。

<item android:gravity="center"> 
    <scale android:drawable="@drawable/ty_logo" 
     android:scaleHeight="80%" 
     android:scaleWidth="80%" > 
    </scale> 
</item> 
+9

これを追加しようとしましたが、今はty_logoが表示されません。 – himanshu1496

4

centerにあなたのビットマップセットにgravityを追加します。

<item android:gravity="center"> 
    <bitmap android:src="@drawable/ty_logo" 
      android:gravity="center" /> 
</item> 
3

I 希望ty_logoが好適画素であり、さまざまなデバイスの画面(ldpi, mdpi, hdpi, xhdpi, etc)に対して異なるピクセル画像を提供していること。 ない場合は、あなたが自分自身を見つける同様の問題にこの回答を通過しない:あなたのターゲットバージョン<item>としてAPI 23のためであればResize images in bitmap in xml

それ以外の場合、これは簡単に解決することができますが、を持っています高さ、重さ属性が指定されています。

もしそうでなければ、重力ビットマップの属性を使用して、次のコードが機能するはずです。この場合も、ロゴの解像度がデバイスの解像度よりも高くないという前提に基づいています。

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
... 

<item> 
     <bitmap android:src="@drawable/ty_logo" 
     android:gravity="center" /> 
</item> 

... 
</layer-list> 
関連する問題