dra*_*ula 28 android android-linearlayout
我想按百分比设置边距.我在线性布局中有4个图像视图,并希望设置默认的左,右,上,下边距,每个屏幕尺寸保持相同的百分比.
可能吗 ?
这是一个我想要的演示..

这就是我尝试过但不起作用的东西
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:weightSum="10" >
<Thumbnail
android:id="@+id/thumb1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" />
<Thumbnail
android:id="@+id/thumb2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:weightSum="10" >
<Thumbnail
android:id="@+id/thumb3"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" >
</Thumbnail>
<Thumbnail
android:id="@+id/thumb4"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" />
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助
laa*_*lto 26
您可以在Views中LinearLayout使用隐形s 作为垫片,并使用该layout_weight机制为它们分配相对大小.
例:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1">
<Thumbnail
android:id="@+id/thumb1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="2"
android:visibility="invisible"/>
<Thumbnail
android:id="@+id/thumb2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="4" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
nei*_*its 19
2017年8月1日新增:
此答案中的两个布局现已弃用,但有关于如何获得相同功能的说明ConstraintLayout.感谢dpg指出这一点.
如果您计划将百分比与资源一起使用,则此答案可能很有用.
老答案:
现在支持库版本23.0.0出现了更好的方法(关于时间,对吧?).您现在可以使用PercentFrameLayout或PercentRelativeLayout.它们都具有以下属性:
您还可以查看PercentLayoutHelper.PercentLayoutParams
您可以使用ConstraintLayout的指南设置百分比边距.
假设您要为布局定义以下百分比值:
然后,您只需在布局中添加以下指南:
<?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">
<ImageView
android:id="@+id/imageView1"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_launcher_background"
app:layout_constraintTop_toTopOf="@+id/horGuideline1"
app:layout_constraintStart_toStartOf="@+id/verGuideline1"
app:layout_constraintEnd_toStartOf="@+id/verGuideline2"
app:layout_constraintBottom_toTopOf="@+id/horGuideline2" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_launcher_background"
app:layout_constraintTop_toTopOf="@+id/horGuideline1"
app:layout_constraintStart_toStartOf="@+id/verGuideline3"
app:layout_constraintEnd_toStartOf="@+id/verGuideline4"
app:layout_constraintBottom_toTopOf="@+id/horGuideline2" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_launcher_background"
app:layout_constraintTop_toTopOf="@+id/horGuideline3"
app:layout_constraintStart_toStartOf="@+id/verGuideline1"
app:layout_constraintEnd_toStartOf="@+id/verGuideline2"
app:layout_constraintBottom_toTopOf="@+id/horGuideline4" />
<ImageView
android:id="@+id/imageView4"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="centerCrop"
app:srcCompat="@drawable/ic_launcher_background"
app:layout_constraintTop_toTopOf="@+id/horGuideline3"
app:layout_constraintStart_toStartOf="@+id/verGuideline3"
app:layout_constraintEnd_toStartOf="@+id/verGuideline4"
app:layout_constraintBottom_toTopOf="@+id/horGuideline4" />
<android.support.constraint.Guideline
android:id="@+id/verGuideline1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.05" />
<android.support.constraint.Guideline
android:id="@+id/verGuideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.35" />
<android.support.constraint.Guideline
android:id="@+id/verGuideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.65" />
<android.support.constraint.Guideline
android:id="@+id/verGuideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.95" />
<android.support.constraint.Guideline
android:id="@+id/horGuideline1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.12" />
<android.support.constraint.Guideline
android:id="@+id/horGuideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.47" />
<android.support.constraint.Guideline
android:id="@+id/horGuideline3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.53" />
<android.support.constraint.Guideline
android:id="@+id/horGuideline4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.88" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
因此,您的布局看起来像这样:
| 归档时间: |
|
| 查看次数: |
39135 次 |
| 最近记录: |