1

Design Support Library から使用していますがPercentRelativeLayout、7 インチと 10 インチのタブレットで異なるパーセンテージを設定したいと考えています。

たとえば、ImageView 以下のような場合。

<ImageView
     android:id="@+id/contactDoc"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     app:layout_widthPercent="70%"
     app:layout_heightPercent="70%"
     android:layout_centerHorizontal="true"
     android:clickable="true"
     android:src="@drawable/dashboard_contactdoctor" />

sw720dp のような別のレイアウトフォルダーを作成せずに、7インチタブレットに70%、10インチタブレットに60%を設定したい場合。私はそれを行うことができますか?助けていただければ幸いです。

4

4 に答える 4

1

これらのパーセンテージはfractionリソースです。分数の値を定義するres/values/fractions.xmlを設定できるはずです。次に、レイアウトで使用します。res/values-sw720dp/fractions.xml@fraction/whatever_you_called_it

于 2016-10-26T12:13:34.513 に答える
0

まず、7 インチまたは 10 インチのタブレットを検出する必要があります。あなたの質問に基づいて、あなたはすでにそれを行う方法を知っていると思います。そうでない場合は、このすばらしい回答をご覧ください。

どのデバイスを扱っているかがわかったら、次のコードを使用してif条件内 (または別の場所) に配置し、ビューのパーセンテージをコードで定義します。

    View view = findViewById(R.id.yourView);
    PercentLayoutHelper.PercentLayoutParams params =
            (PercentRelativeLayout.LayoutParams) view.getLayoutParams();
    PercentLayoutHelper.PercentLayoutInfo info = params.getPercentLayoutInfo();
    info.heightPercent = 0.60f;
    view.requestLayout();

別の素晴らしい答えに基づいています。

于 2016-10-26T12:13:35.167 に答える