2017-01-24 20 views
2

同じ画像ですべての画面サイズの背景画像を設定するプロジェクトを進めています。どのように可能ですか?アンドロイドスタジオですべての画面サイズの背景画像を設定する方法は?フォルダをドローブルに入れる方法は? ありがとうございます。すべての画面サイズの背景画像を設定

+0

どのようにSOのユーザーから必要なものを意味しますか? – Amy

+0

異なる画面サイズで異なるスケーリングを意味する場合は、同じ画像コンテンツを持つ異なるサイズの画像を、「hdpi」「xhdpi」「mdpi」「ldpi」などのテールを持つ描画可能またはミップマップに簡単に配置します。 –

答えて

3

以下のサイズで画像を変換し、特定のフォルダに貼り付けてください。

xxxhdpi: 1280x1920 px 
xxhdpi: 960x1600 px 
xhdpi: 640x960 px 
hdpi: 480x800 px 
mdpi: 320x480 px 
ldpi: 240x320 px 

すべての端末でアプリを実行するには最適なサイズですか?

Reference

+0

しかし、私のアンドロイドスタジオでは、ドロウアブルにフォルダがありません。 – Jincy

+0

@Jincyそれを解決するためのフォルダを作成するだけです。 –

+0

それは機能しません。 – Jincy

4

単純なドロウアブルフォルダを入れてそこに画像を貼り付けてください。 styles.xmlを開き、このコード行を貼り付けます。

<!-- Base application theme. --> 
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorOrange</item> 
     <item name="colorAccent">@color/colorAccent</item> 
     <item name="android:windowBackground">@drawable/yourImage</item> 
    </style> 

これを使用すると、すべてのレイアウトに背景画像を配置する必要はありません。

+1

しかし、 ? –

2

だけではなく、いくつかのビューの背景に画像を追加するImageViewのを使用してください。 イメージビューを使用してイメージを拡大するのではなく、イメージの非適合部分をトリミングするだけです。このすべての作業は、scaleType = "centerCrop"タグで行われました。

ここではサンプルコードです:このケースでは、我々は2つのオプション

1を持っているので、私のプロジェクトで

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:id="@+id/activity_class" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context="lpt.com.attendance.ActivityClass.Activity_Class"> 

     <ImageView 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:adjustViewBounds="true" 
      android:scaleType="centerCrop" 
      android:src="@drawable/background" /> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

      //Now this is your main layout to put everything. 

     </RelativeLayout> 
</FrameLayout> 
0

これと同じ機能の必要性)xxxhdpiとロードするために、それぞれのresフォルダhdpiに画像を置くが、この場合、単一項目のすべての7-8イメージを維持する必要があります。

別の解決策が

2である)互換のすべての画面でテストし、あなたが使用することができる画像表示クリックイベントが必要な場合は、イメージ図と同じSHOLDのWebViewでの資産及び負荷のURLに生のフォルダに入れて応答HTMLを作成しますwebview touchイベント。

私たちは方法1を使用していますが、両方のソリューションが正常に動作していますが、今ではメモリと処理の問題を軽減するために2番目の方法に移行します。まだ混乱がある場合はお尋ねください。

関連する問題