Android ScaleToFit布局Quandry
我正在努力学习更多关于Android布局系统的知识;这对我来说是一次学习经历。我目前正在尝试创建一个基本上相当于两个线性布局的布局:一个填充父垂直,一个内部填充宽度水平,这样我有一个ImageView横幅[在外部],然后七个ImageButton列填充视图的宽度[在内部] 我的问题来了,因为我需要ImageButton的内容按比例填充整个按钮视图[列],但要尊重ImageButton的边界,因此如果一个小图像或大图像是源,它将在ImageButton中居中,填充其垂直和水平尺寸,并居中-我无法控制源图像 我以为CenterCrop会这么做,但nada对我来说 ImageView.ScaleType居中\裁剪均匀缩放图像(保持图像的纵横比),使图像的两个尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充) 对我所拥有的任何相关想法;请忽略外部布局:Android ScaleToFit布局Quandry,android,layout,Android,Layout,我正在努力学习更多关于Android布局系统的知识;这对我来说是一次学习经历。我目前正在尝试创建一个基本上相当于两个线性布局的布局:一个填充父垂直,一个内部填充宽度水平,这样我有一个ImageView横幅[在外部],然后七个ImageButton列填充视图的宽度[在内部] 我的问题来了,因为我需要ImageButton的内容按比例填充整个按钮视图[列],但要尊重ImageButton的边界,因此如果一个小图像或大图像是源,它将在ImageButton中居中,填充其垂直和水平尺寸,并居中-我无法控
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:id="@+id/linearLayout2"
android:layout_height="fill_parent" android:orientation="vertical"
android:layout_width="fill_parent" android:background="@color/special_grey"
android:layout_margin="0dp">
<ImageView android:id="@+id/imageView1"
android:layout_height="wrap_content" android:layout_gravity="center"
android:layout_width="wrap_content" android:layout_margin="10dp"
android:src="@drawable/banner_logo" />
<LinearLayout android:id="@+id/linearLayout1"
android:layout_margin="5dp" android:layout_gravity="center"
android:layout_width="fill_parent" android:layout_height="250dp" android:baselineAligned="true">
<ImageButton android:minWidth="20dp"
android:adjustViewBounds="true" android:layout_margin="0dp"
android:src="@drawable/sample_0" android:maxWidth="100dp"
android:id="@+id/imageButton1" android:layout_weight="1"
android:scaleType="centerCrop" android:cropToPadding="true"
android:layout_gravity="center" android:layout_width="0dp"
android:padding="0dp" android:layout_height="250dp" />
<ImageButton android:minWidth="20dp"
android:adjustViewBounds="true" android:layout_margin="0dp"
android:src="@drawable/sample_1" android:maxWidth="100dp"
android:id="@+id/imageButton2" android:layout_weight="1"
android:cropToPadding="true"
android:layout_width="0dp"
android:padding="0dp" android:layout_height="250dp" android:scaleType="centerCrop" android:scrollbarAlwaysDrawHorizontalTrack="false" android:scrollbarAlwaysDrawVerticalTrack="false" android:layout_gravity="fill"/>
<ImageButton android:minWidth="20dp"
android:adjustViewBounds="true" android:layout_margin="0dp"
android:src="@drawable/sample_2" android:maxWidth="100dp"
android:id="@+id/imageButton3" android:layout_weight="1"
android:cropToPadding="true" android:layout_gravity="center"
android:layout_width="0dp" android:padding="0dp"
android:layout_height="250dp" />
<ImageButton android:minWidth="20dp"
android:adjustViewBounds="true" android:layout_margin="0dp"
android:src="@drawable/sample_3" android:maxWidth="100dp"
android:id="@+id/imageButton4" android:layout_weight="1"
android:cropToPadding="true" android:layout_gravity="center"
android:layout_width="0dp" android:padding="0dp"
android:layout_height="250dp" />
<ImageButton android:minWidth="20dp"
android:adjustViewBounds="true" android:layout_margin="0dp"
android:src="@drawable/sample_4" android:maxWidth="100dp"
android:id="@+id/imageButton5" android:layout_weight="1"
android:cropToPadding="true" android:layout_gravity="center"
android:layout_width="0dp" android:padding="0dp"
android:layout_height="250dp" />
<ImageButton android:minWidth="20dp"
android:adjustViewBounds="true" android:layout_margin="0dp"
android:src="@drawable/sample_5" android:maxWidth="100dp"
android:id="@+id/imageButton6" android:layout_weight="1"
android:cropToPadding="true" android:layout_gravity="center"
android:layout_width="0dp" android:padding="0dp"
android:layout_height="250dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
我的评论只是一些小建议,因为我不确定你想用这个布局实现什么,或者它最终应该是什么样子,也许你可以详细阐述一下,或者添加一个小图片,以便更好地理解 我认为您的linearLayout1缺少方向,但这并不重要,因为它应该默认为垂直(我认为) 您不能将ImageView的图像作为线性布局2的背景图像吗?然后可以跳过ImageView 然后,我将把大多数ImageButton属性放入样式定义中。这使您可以更轻松地更改设置并清理代码([Android开发人员:应用样式和主题]) 正如我之前所说的,也许你可以详细说明一下它应该是什么样子,这样会更容易提供帮助