我正在尝试将ImageButton
和TextView并排放置在 LinearLayout 中,并且按钮的垂直方向足够大以适合布局-希望这应该适合宽度。布局的其余部分应由文本视图占据。
此刻,我的xml文件中具有以下布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".08"
android:background="#004D79"
android:orientation="horizontal">
<ImageButton
android:id="@+id/helpButton"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:cropToPadding="false"
android:layout_margin="3dp"
android:adjustViewBounds="true"
android:background="@drawable/help" />
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#000000"
android:text="Some placeholder text"
android:textColor="#ffffff"
/>
</LinearLayout>
此布局占用了8%的垂直空间。该按钮的图片为500x500。
但是,我遇到了一些问题!
当我在“原样”上方运行布局时,图像按钮是正确的高度,但是它占据了布局的整个宽度;根本没有文本视图-看来android:adjustViewBounds="true"
无法正常工作。
但是,如果我将android:background="@drawable/help"
替换为android:src="@drawable/help"
,则会在布局的左侧得到一个小的正方形区域,但是上面没有图像。文本视图位于“按钮”的右侧,但未覆盖其余的布局;包裹起来,使其大小足以容纳占位符文本。
我是否需要以编程方式调整应用程序中按钮和文本视图的大小,例如 OnMapReady(...)?
编辑:我刚刚验证了图像文件在 res / drawable / help.png 中-但是为什么它应该与背景一起显示(尺寸错误),而与src一起显示(尺寸正确) )对我来说是个谜。
答案 0 :(得分:0)
android:adjustViewBounds
需要与android:src
一起使用,当android:adjustViewBounds
为true时,ImageButton将调整其边界以保留其可绘制对象的纵横比,尺寸可能会变大。
android:src
,android:width
,android:height
确定视图的大小,android:background
将被拉伸以填充整个视图,android:scaleType
控制图像的方式应该调整大小或移动以匹配此ImageButton的大小
您想要的布局可能必须设置android:src
和android:scaleType
属性
<LinearLayout
android:layout_width="match_parent"
android:layout_height="100dp"
android:orientation="horizontal"
android:gravity="center_vertical">
<ImageButton
android:id="@+id/helpButton"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_margin="3dp"
android:scaleType="fitCenter"
android:src="@mipmap/ic_launcher" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</LinearLayout>