android - 将 ImageView 权重设置为屏幕中心的 50%
问题描述
我有一个 Imageview,想将它的宽度设置为屏幕大小的 50%。但是图像应该放在屏幕的中间。这就是我所做的:
<LinearLayout
android:id="@+id/logoView"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:orientation="horizontal"
app:layout_constraintTop_toBottomOf="@id/title">
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageView
android:id="@+id/logo"
android:layout_weight="2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
app:srcCompat="@drawable/app_logo_login" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
因为layout_weight
图像的宽度是完美的。我的问题是,图像的高度太多了,要理解我的意思,请看这张照片:
出于某种原因,图片的高度并没有减少,即使我看到它被缩放,它仍然具有原始高度。如何解决?
解决方案
使用带指导线的约束布局
<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/imageView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toStartOf="@+id/guideline2"
app:layout_constraintStart_toStartOf="@+id/guideline"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_launcher_background" />
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.25" />
<android.support.constraint.Guideline
android:id="@+id/guideline2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.75" />
推荐阅读
- apache-kafka - Kafka 消费者的最佳架构
- import - Odoo 修改或扩展导入流程
- java - 错误进程以退出代码 1 结束。与通过数组的 for 循环有关
- amazon-web-services - terraform 不应用标准属性
- javascript - p5.js 数组:多个对象被拼接而不是单个对象
- heroku - 如何让 Heroku 从子目录中正确部署应用程序?
- python - 如何使用 Python 请求登录 Costco.com
- typescript - 使用类型为嵌套对象创建驼峰函数
- python - 如何找到分类变量(邮政编码)与另一个变量的出现次数之间的关系?
- python-3.x - Lambda 不适用于具有自动缩放功能的 ec2