1

我正在使用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" />

现在,如果我想为 7 英寸平板电脑设置 70%,为 10 英寸平板电脑设置 60%,而不需要像 sw720dp 这样的不同布局文件夹。我可以做吗?帮助表示赞赏。

4

4 回答 4

1

这些百分比是fraction资源。您应该能够设置res/values/fractions.xmlres/values-sw720dp/fractions.xml,在其中定义分数的值。然后,@fraction/whatever_you_called_it在布局中使用。

于 2016-10-26T12:13:34.513 回答
0

尝试使用约束布局,它适用于 android studio 2.2 及更高版本。

通过使用它,您可以根据屏幕百分比添加垂直和水平指南,然后设置相对于这些指南的图像视图的高度和宽度

于 2016-10-26T12:09:41.277 回答
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 回答
0

您可以为不同的屏幕尺寸使用不同的布局。您可以在文档中阅读更多相关信息:https ://developer.android.com/training/multiscreen/screensizes.html

不提供多种布局的一种可能性是将 a 放在 10 的内部ImageView,然后以编程方式设置权重:LinearLayoutandroid:weightSumImageView

LinearLayout.LayoutParams layoutParams = yourView.getLayoutParams();
layoutParams.weight = WHATEVER;
yourView.setLayoutParams(layoutParams);
于 2016-10-26T12:00:12.540 回答