0

私はサークル画像を作成するためにカードビュー内にある画像ビューを持っています。スマートフォンでは、画像のサイズを250と250dpにしたいと考えています。私の電話の幅の約80%です。タブレットと電話で同じように見えるImageView

タブレットでは、画像をタブレットの幅の約80%にしたいと考えています。また、高さも幅に合わせる必要があります。それを達成するための最良の方法は何ですか。ありがとう?

以下は、250dpの幅と高さを手動で入力するコードです。これはスマートフォンではうまくいくようですが、タブレットでは小さく見えます。あなたは何ができるか

<android.support.v7.widget.CardView 
    android:id="@+id/cardView" 
    android:layout_width="250dp" 
    android:layout_height="250dp" 
    android:elevation="12dp" 
    app:cardCornerRadius="125dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:innerRadius="0dp" 
    android:shape="ring" 
    android:thicknessRatio="1.9" 
    android:layout_marginTop="20dp"> 
    <ImageView 
     android:layout_width="250dp" 
     android:layout_height="250dp" 
     android:id="@+id/image_album_art" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 
    </ImageView> 
</android.support.v7.widget.CardView> 

答えて

0

Androidはこれを簡単にするように設計されています。あなたは、リソースがデバイス構成(すなわち画面サイズ)に応じて、変更したい場合は、あなたが特定のディレクトリに、そのリソースを定義します。

res/layout-sw720dp - large (9"-10") tablets 
res/layout-sw600dp - small (7"-8") tablets 
res/layout - all other devices 

を使用すると、ディレクトリ名に-sw600dpを追加すると、これは「最小幅600 DPを意味し、 "つまり、このディレクトリは600dp以上の画面幅を持つデバイス用です。 「最小幅」とは、画面のいずれの側面が小さいかを意味します。したがって、縦または横のいずれのサイズであっても、1067dp x 600dpの画面は600dpの最小幅です。

各設定のレイアウトファイル全体をコピーして、上記の各ディレクトリにコピーすることができます。ただし、Viewのサイズを除いてすべてのファイルが同じであれば、重複したコードがたくさんあります。変更が必要な場合は、3つのファイルすべてを変更する必要があります。これは間違いの原因となります。

複数のレイアウトを持つ代わりに、構成によって異なるディメンションを定義できます。レイアウトはres/layout/となり、寸法はres/values/

となります。dimensions.xmlという新しいXMLファイルを作成し、res/valuesディレクトリに置きます。

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="album_art_size">250dp</dimen> 
</resources> 

これは、電話機に表示されるファイルになります。その後

、さらに2つのvaluesのディレクトリを作成し、res/valuesres/values-sw600dpres/values-sw720dpを持っているので、それらに最小幅修飾子を追加します。これらの新しいディレクトリの両方にdimensions.xmlをコピーします。それらのファイルのそれぞれのalbum_art_sizeの寸法を変更することができます。また、アプリが異なる画面サイズで動作する場合は、適切なdimensions.xmlファイルが表示されます。

最後に作成したalbum_art_sizeディメンションでレイアウトを指すことです。 @dimen/album_art_size250dpを置き換えます

android:layout_width="@dimen/album_art_size" 
android:layout_height="@dimen/album_art_size" 

これはあなたがあなたの80%の画面サイズのターゲットに十分近い取得する必要があり、各デバイスカテゴリに特定のサイズを、選択できるようになります。画面幅と正方形ビューのちょうど80%が必要な場合は、ImageViewのscaleTypeadjustViewBounds属性を使用するか、Javaコードを記述する必要があります。

0

型大すなわちレイアウト大型のレイアウトのフォルダを作成し、レイアウトフォルダからレイアウトをコピーして、レイアウト、大型のフォルダに貼り付け、その後、ちょうど高さと幅に応じて設定されていますタブレットの画面サイズは450dpなので、それをチェックしてください!

関連する問題