2017-08-16 24 views
0

私はガイド:https://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayoutsに示されているように異なる画面サイズをサポートしようとしています。イメージとテキストが異なる画面サイズで拡大縮小されないのはなぜですか?

私は5つの異なる描画可能なフォルダを持っている:

  • 描画可能(画像サイズ40x48png)

  • 描画可能-MDPI(画像サイズ80x96png)

  • 描画可能-hdpi(画像サイズ120x144png)

  • drawable-xhdpi(画像サイズ160x192png)

  • 描画可能-xxhdpi(画像サイズ210x252png)

マイプロジェクトは、サイズごとに5つの異なるレイアウトフォルダ含む: 300dp、330dp、480dp、600dp、720dpを。すべてのフォルダに同じlayout.xmlファイルがあります。

マイレイアウトコード:

<TextView 
    android:id="@+id/textView2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:gravity="center" 
    android:layout_margin="15dp" 
    android:text="Truuuuu" 
    android:textColor="#000000" 
    android:textSize="30sp" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintHorizontal_bias="0.39" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintRight_toRightOf="parent"/> 

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="15dp" 
    android:layout_marginRight="15dp" 
    android:layout_alignParentStart="true" 
    android:layout_alignTop="@+id/textView2" 
    android:layout_marginTop="60dp" 
    android:background="#ffffff" 
    android:orientation="horizontal" 
    android:id="@+id/relativeLayout"> 

    <ImageView 
     android:id="@+id/off50" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_marginTop="10dp" 
     android:layout_marginBottom="10dp" 
     android:src="@drawable/off50" /> 

    <TextView 
     android:id="@+id/akcija" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="pewpew!" 
     android:textSize="20sp" 
     android:layout_alignTop="@+id/off50" 
     android:layout_alignParentEnd="true" 
     android:layout_toEndOf="@+id/off50" 
     android:textColor="#000000"/> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/off50" 
     android:layout_alignParentEnd="true" 
     android:text="pewpew" 
     android:textColor="#000000" 
     android:textSize="20sp" /> 



</RelativeLayout> 

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="15dp" 
    android:layout_alignStart="@+id/relativeLayout" 
    android:layout_below="@+id/relativeLayout"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/idk"/> 

</RelativeLayout> 

私の質問は..私は別の画像フォルダや画像ファイルを右なければならないのでしょうか?レイアウトフォルダも作成しました。 layout-sw720dpでは、私のテキストはスケーリングされていません。例えば、テキストをほとんど読むことができます。

テキストスケーリングをサポートするにはどうすればよいですか?画像が異なる画面サイズで拡大縮小されないのはなぜですか?

答えて

0

あなたは混乱しています。

各swフォルダーに同じレイアウトファイルがある場合は、そうしないでください。そのサイズの画面レイアウトが異なる場合にのみ、新しいレイアウトファイルを作成します。これは、まったく新しい要素や削除された要素、または変更された位置を意味しています。値を変更するだけの場合は、値ファイルを使用します。

あなたがリンクしているページには、優れたリソースがありますが、あなたができることが複数記述されています。あなたはそれらのすべてをやらなければなりません、実際にはそれらのいくつかは矛盾しています。適切なことは、物事をどのように見たいかによって異なります。

画像の拡大/縮小には、画面の密度に基づいて拡大縮小が行われます。これは、同じ密度のすべてのデバイスが同じドロアブルを使用することを意味します。これは、同じ物理サイズに見せかけますが、デバイスのサイズに比例して縮尺することはありません。それはあなたが望むものかもしれません。そうでない場合は、イメージのdpで固定サイズを定義するか、match_parentにし、scaleTypeを使用してスケールします。

テキストサイズの場合、固定テキストサイズはどこにでも設定できます。それはすべてのデバイスで同じ高さになります。一般に、異なる画面サイズでテキストを大きくすることはあまり行われません。必要に応じて、20spをディメンションにして、サイズに基づいてdimen.xmlファイルに異なる値を設定します。

あなたが達成しようとしていることと何を得ているのかについては、これ以上の情報が必要です。

+0

私は値の部分についてのポイントを得ました。レイアウトフォルダ(sw)を作成するときに行ったのと同じ番号を使用する必要がありますか?私は画像の特性を(幅と高さ150dp、centerCrop scaleTypeに変更しましたが、画像はまだ縮尺変更できません.hmm –

+0

はい、これらの数値は私にはかなり正気のようでした。彼らはすべて少し恣意的です。私は多分300対330 dpがそれほど重要ではないと言うでしょう。 –

+0

ありがとう!私はテキストを修正することができましたが、今は画像だけ残っています。そのポイントを得るために遊んでいます..まだできません:/ –

関連する問題