2017-11-02 1 views
0

私は学校のコースでいくつかの小さなAndroidアプリを開発していますが、私はいくつかの設計上の問題に取り組んできました。プレビューのデバイスのサイズは私の実際の電話と同じではありません。Androidスタジオのデザインプレビューが間違ったサイズです

下にリンクされている最初の画像は、画像が表示されるように自分の携帯電話(Google Pixel)を示しています。 2番目の画像はAndroid Studio(Pixelのサイズを使用するように設定されています)を示していますが、携帯電話のように表示するにはフレームから画像を拡大縮小する必要がありました。

私の電話機に正しいサイズを使用していないのはなぜですか。それを正しく正確に設定する方法があります(私は手動でサイズを変更できますが、完全に一致させることはできません)。

Googleのピクセルのスクリーンショット:

Google Pixel screenshot

のAndroidメーカーのスクリーンショット:

Android Studio screenshot

編集:ここではXMLコードです:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="dxhhh101.lullabyapp.SplashActivity"> 

<TextView 
    android:id="@+id/txtTitle" 
    android:layout_width="412dp" 
    android:layout_height="604dp" 
    android:background="@drawable/stars" 
    android:gravity="bottom|center" 
    android:text="@string/txtSplash" 
    android:textColor="@android:color/holo_orange_light" 
    android:textSize="38sp" 
    android:textStyle="bold" 
    tools:layout_editor_absoluteX="5dp" 
    tools:layout_editor_absoluteY="-33dp" /> 
</android.support.constraint.ConstraintLayout> 
+0

あなたのxmlを投稿してください。私の推測ではあなたの身長はマッチしていますが、あなたの幅は折り返していますか?両方とも一致させる – DroiDev

+0

@DroiDev XMLを投稿に追加しました。 – DXHHH101

+0

あなたのテキストビューの背景ですか?そうです。それをConstraintLayoutのバックグラウンドとして追加します。あなたはこのアンドロイドをやりたいとは決して決してしません:layout_width = "412dp android:layout_height =" 604dp " – DroiDev

答えて

0

が、あなたは最後の二つを削除した場合あなたのラインtextview xmlはAndroid Studioで正しく表示されるはずです。レイアウトはデバイスに依存しないため、イメージの絶対サイズを使用しないことをお勧めします。さらに、画像の背景は元の画像の比率を維持しません。代わりに、2つの異なるレイアウトオブジェクトを使用することをお勧めします.1つは背景イメージ用で、もう1つは下部のテキスト用です。あなたがchain feature of constraintLayoutを使用することができる4枚の画像を使用して新しいレイアウトの

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 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:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="dxhhh101.lullabyapp.SplashActivity"> 

<ImageView 
    android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scaleType="centerCrop" 
    android:src="@drawable/stars" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toTopOf="parent" /> 

<TextView 
    android:id="@+id/txtTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:gravity="bottom|center" 
    android:text="@string/txtSplash" 
    android:textColor="@android:color/holo_orange_light" 
    android:textSize="38sp" 
    android:textStyle="bold" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintStart_toStartOf="parent" /> 

</android.support.constraint.ConstraintLayout> 

:これは、このようlookeでしょう。固定されたイメージの幅はあなたのための罰金である場合、これは、例えば次のようになります。

<ImageView 
    android:id="@+id/imageView" 
    android:layout_width="150dp" 
    android:layout_height="0dp" 
    android:scaleType="centerCrop" 
    android:src="@drawable/chain_help" 
    app:layout_constraintBottom_toTopOf="@+id/imageView3" 
    app:layout_constraintDimensionRatio="h,1:1" 
    app:layout_constraintEnd_toStartOf="@+id/imageView2" 
    app:layout_constraintHorizontal_bias="0.5" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toTopOf="parent" /> 

<ImageView 
    android:id="@+id/imageView2" 
    android:layout_width="150dp" 
    android:layout_height="0dp" 
    android:scaleType="centerCrop" 
    android:src="@drawable/chain_help" 
    app:layout_constraintBottom_toTopOf="@+id/imageView4" 
    app:layout_constraintDimensionRatio="h,1:1" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintHorizontal_bias="0.5" 
    app:layout_constraintStart_toEndOf="@+id/imageView" 
    app:layout_constraintTop_toTopOf="parent" /> 

<ImageView 
    android:id="@+id/imageView3" 
    android:layout_width="150dp" 
    android:layout_height="0dp" 
    android:scaleType="centerCrop" 
    android:src="@drawable/chain_help" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintDimensionRatio="h,1:1" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintEnd_toStartOf="@+id/imageView4" 
    app:layout_constraintHorizontal_bias="0.5" 
    app:layout_constraintStart_toStartOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/imageView" /> 

<ImageView 
    android:id="@+id/imageView4" 
    android:layout_width="150dp" 
    android:layout_height="0dp" 
    android:scaleType="centerCrop" 
    android:src="@drawable/chain_help" 
    app:layout_constraintBottom_toBottomOf="parent" 
    app:layout_constraintDimensionRatio="h,1:1" 
    app:layout_constraintEnd_toEndOf="parent" 
    app:layout_constraintHorizontal_bias="0.5" 
    app:layout_constraintStart_toEndOf="@+id/imageView3" 
    app:layout_constraintTop_toBottomOf="@+id/imageView2" /> 

代わりに固定されたイメージの幅/高さを使用してのイメージがあるので、あなたは、デバイスの高さと幅のguideline 50%に設定することができます常に適切なデバイスの高さと幅に調整します。

+0

これは私の特定の事例に役立ちますが、残念なことに役立たない他の場合は私。 [私の電話](https://i.imgur.com/85qPmdx。jpg) vs [Androidスタジオ] – DXHHH101

+0

DroiDevは既に指摘しているように、デバイスの幅と高さは様々であるため、位置とサイズの絶対値は避けてください。あなたのスクリーンショット:constraintLayoutのチェーン機能に慣れてください。この例では、固定の画像幅を使用します: – guglhupf

関連する問題