2016-03-15 17 views
5

Androidプログラミングの新機能です。最近、私はプロジェクトを開始し、Androidアプリのスプラッシュ画面を作りたいと考えています。 following this tutorialの後にスプラッシュ画面を読み込んで正常に実装しました。ビットマップで画像をxmlでサイズ変更

Stretched out app logo

次は私のbackground_splash.xml次のとおりです:

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

    <item> 
     <bitmap 
      android:gravity="center" 
      android:src="@drawable/tap" /> 
    </item> 
</layer-list> 

私は

android:width="75sp" 
android:height="75sp" 

を試してみましたが、私は私のアプリのロゴはこのように、私の画面の外に広がっていることを実感します<bitmap>でも動作しません。したがって、ImageViewを使用する以外は、イメージのサイズを変更する方法(Javaコードなし、できれば)があるかどうかを知りたいと思います。どんな助けもありがとう!

+0

**アンドロイド:scaleType = "fitXY" **それを試してみてください....とあなたのImageViewの設定**アンドロイド:layout_width = "match_parent" アンドロイド:layout_heightは= "match_parent" **私はそれが –

+0

をしてくださいうまくいくと思いますあなたのレイヤリストの**高さと幅**を設定してください... –

+0

@nandkishormewara私はそれを試してみましょう電子それは☺ –

答えて

0

RあなたがImageViewの私はそれはあなたを助け考えて、それを試してみてくださいを使用して...

ImageView img=(ImageView)findViewById(R.id.ImageView01); 
Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.sc01); 
int width=200; 
int height=200; 
Bitmap resizedbitmap=Bitmap.createScaledBitmap(bmp, width, height, true); 
img.setImageBitmap(resizedbitmap); 

それとも それを

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="100dp" 
android:layout_height="100dp"> 
<item 
    android:drawable="@drawable/splash_background" /> 

<item> 
    <bitmap 
     android:gravity="center" 
     android:src="@drawable/tap" /> 
</item> 
</layer-list> 
+1

いいえ私はImageViewを使用していません。私はそれを直接表示するためにビットマップを使用しています。イメージビューは使用されていません。 –

2

をチェックデザインながら、私は同上同じ問題に直面しましたスプラッシュ画面私のアプリ(あなたと同じリンクに従ってください上記のイオンと他のいくつかのイオン)、グーグルが私の答えを得ました。

解決方法は簡単であり、コーディングは含まれません。 ie。あなたのxmlに高さと幅を指定する必要はありません。これがなぜ起こっているかについては、あなたの画像解像度は高い以下です。

SOLUTION:

あなたは、さまざまな画面サイズにマッピングする様々な解像度の画像を提供する必要があります。


アンドロイドモバイルデバイス用

LDPI- 426×320

- :グーグル(すべてのピクセル)によって提供されるような各種ディスプレイ用最小画面サイズのリストでありますMDPI-470×320

HDPI-640×480

X 800 XHDPI- 960×720


タブレットデバイスのため

LDPI- 200×320

MDPI- 320×480

HDPI- 480

XHDPI - 720×1280


だから、あなたがする必要があるすべてはが(例:自分のサイズに応じたDrawableに負荷画像、すべてサイズためあなたのイメージのサイズを変更です:描画可能-hdpihdpiが含まれていますイメージ)、それをbackground_splash.xmlに渡します(同じ名前をそのまま使用できます)。プロジェクトを再ビルドして実行します。あなたの仕様通りでなければなりません。

注:コードはまったく変更する必要はありません。画像のサイズを変更するには、Adobe Photoshopを使用することができます(作業が簡単です)。

9パッチイメージを使用すると、イメージの境界線が画像の静的領域に影響を与えずに画面のサイズに収まるようにすることもできます。

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

2

ちょうどあなたが項目にビットマップのサイズを変更したい場合は、寸法が直接アイテムを使用し変更するには、ビットマップ を使うべきではありません

android:gravity="fill" 
-3

android:gravity="center" 

を変更..例:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:drawable="@drawable/splash_background"/> 
    <item 
     android:src="@drawable/tap" 
     android:gravity="center" 
     android:width="150dp" 
     android:height="150dp"/> 
    </item> 
</layer-list> 

ビットマップは、重力を利用した画像の寸法のサイズ変更を=「中心」

1

ビットマップが重力=「センター」を使用して画像寸法のサイズ変更を可能にし、スプラッシュスクリーンのための特定のサイズを有する別個のアイコンを取らないことはできません。

1

このいけないが、使用してみ描画可能

あなたは、完全なイメージがあなたのがれに設定したい場合は、相対的なレイアウトにそれを与える背景色、 を変更したい場合(最高のスプラッシュ画面用)の画像表示にmatch_parentを使用

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="fitXY" 
     android:layout_centerInParent="true" 
     android:src="@drawable/splash" /> 

</RelativeLayout> 
関連する問題