[Android]Layout中ImageView中图片的对齐显示问题

说一下ImageView中经常遇到的图片对齐问题:

上面图片中布局实现的代码:

   <LinearLayout
        android:id="@+id/search_box_region"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:background="@drawable/searchbox_bg"
        android:layout_alignParentTop="true"
        >
        
        <ImageView
            android:id="@+id/image1"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"
            android:background="#CCCCEE"
            android:src="@drawable/searchbox_icon" />


        <EditText
            android:id="@+id/edittext1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:inputType="textWebEditText"
            android:imeOptions="actionSearch"
            android:scrollHorizontally="true"
            android:singleLine="true"
            android:background="#CCEECC"
            android:gravity="center_vertical"/>
        
        <Button
            android:id="@+id/button1"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"
            android:textAlignment="center"
            android:text="@string/cancel"
            android:background="#CCCCEE"/>
        
    </LinearLayout>


图中三个控件平分LinearLayout的宽度,默认情况下ImageView中的图片是居中显示的,如果想要图片靠右显示,需要设置ImageView的ImageView属性:

    android:scaleType="fitEnd"

或者在代码中调用:image1.setScaleType(ImageView.ScaleType.FIT_END);

效果如下: 



各参数解释:

CENTER: 按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示;
CENTER_CROP:按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽);
CENTER_INSIDE:将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽;
FIT_CENTER:把图片按比例扩大/缩小到View的宽度,居中显示;
FIT_START/FIT_END:在图片缩放效果上与FIT_CENTER一样,只是显示的位置不同,FIT_START是置于开始位置,FIT_CENTER居中,FIT_END置于结束位置;
FIT_XY:不按比例缩放图片,目标是把图片塞满整个View。

猜你喜欢

转载自blog.csdn.net/youngwhz1/article/details/73850337