用百分比android设置填充

时间:2015-10-05 20:33:58

标签: android

我想在android中设置一个元素的填充,以便在左,右和底部填充中有3.2%,我做了一些研究,但我没有得到任何有趣的东西,这里是我&# 39;我试过了。

           Display display = getWindowManager().getDefaultDisplay();
                int width = display.getWidth();
                int height = display.getHeight();

                FrameLayout rel = (FrameLayout) findViewById(R.id.tabcontent);
                double width_pas= width*3.2;
                double height_pas=height*3.2;
                rel.setPadding(width_pas,0,width_pas,height_pas);

但我在setpadding中得到错误,它只接受整数,但我需要设置3.2的边距 希望你能帮助我。

2 个答案:

答案 0 :(得分:1)

三件事:

  1. 如果您想计算宽度/高度的3.2%,您应该将特定值乘以0.032而不是3.2
  2. 您无法设置浮动填充(请参阅Adem's注释)
  3. 如果您使用ints代替floats/doubles,则最终会使用3%填充而不是3.2%。这取决于你要回合什么。如果你用这种方式计算填充:
  4. int width_pas = Math.round(width * 0.032f);
    int height_pas = Math.round(height * 0.032f);
    

    你最终会获得高度/宽度的准确度的3.2%。

答案 1 :(得分:0)

您可以使用Guidelines

实现此目的
<?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"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.constraint.Guideline
        android:id="@+id/startVerticalGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.032" />

    <android.support.constraint.Guideline
        android:id="@+id/endVerticalGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        app:layout_constraintGuide_percent="0.968" />

    <android.support.constraint.Guideline
        android:id="@+id/bottomGuideline"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_percent="0.968" />

    <FrameLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:background="#AAA"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintStart_toEndOf="@+id/startVerticalGuideline"
        app:layout_constraintEnd_toStartOf="@+id/endVerticalGuideline"
        app:layout_constraintBottom_toTopOf="@+id/bottomGuideline" />

</android.support.constraint.ConstraintLayout>

enter image description here