我正在尝试了解有关Android布局系统的更多信息;这对我来说是一次学习经历。我正在尝试创建一个基本上相当于两个线性布局的布局:一个fill_parent垂直,内部fill_width水平,所以我有一个ImageView横幅[在外面],然后七个ImageButton列填充视图的宽度[在内心]。
我的问题来了,因为我需要ImageButton的内容按比例填充整个按钮视图[列],但要尊重ImageButton边界,这样如果 a小图像或大图像是源,它将在ImageButton中居中,填充它的垂直和水平尺寸,并居中。 - 我无法控制源图像。
我以为CenterCrop会这样做,但对我来说是虚无... ...
ImageView.ScaleType CENTER_CROP均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或大于视图的相应尺寸(减去填充)。
关于我所拥有的任何相关的想法;请忽略外部外部布局:
<?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>
答案 0 :(得分:0)
我的评论只是一些小建议,因为我不太确定你想要用这种布局实现什么,或者它最终应该是什么样子,也许你可以稍微详细一点或添加一个小图片以便更好地理解。< / p>
我认为你的linearLayout1缺少一个方向,但这不应该是关键的,因为它应该默认为垂直(我认为)。
难道你不能将ImageView的图像作为linearLayout2的backgroundImage吗?然后你可以跳过ImageView。
然后我将大部分ImageButton属性放入样式定义中。这使您可以更轻松地更改设置并清理代码([Android开发人员:应用样式和主题])1
正如我之前所说过的,也许你可以详细说明它应该是什么样子,然后它会更容易帮助。