将图像定位在ImageView中,并设置最大高度和最大宽度

wtf*_*wtf 16 android imageview

我的ImageView最大高度和最大宽度都设置为100.下图显然不是正方形,但你可以用你的想象力;)

图1:

????????????????????????????????????????????????
? ImageView    ????????????????                ?
?              ?              ?                ?
?              ? Actual image ?                ?
?              ?              ?                ?
?              ?              ?                ?
?              ?              ?                ?
?              ????????????????                ?
????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

无论如何,如果我尝试设置BitMapImageView不具有1:1的比例,图像位于像图1描绘我要的是图片放在里面的左侧ImageView像图描绘2下面.

图2:

????????????????????????????????????????????????
????????????????                               ?
?              ?                               ?
? Actual image ?                               ?
?              ?                               ?
?              ?                               ?
?              ?                               ?
????????????????                               ?
????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

您可以在下面看到我的ImageView XML.maxHeight,maxWidthadjustViewBounds在运行时设置.

<ImageView android:id="@+id/someImage"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textName"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:paddingRight="4dp"
    />
Run Code Online (Sandbox Code Playgroud)

这是一个RelativeLayout如果它有任何区别.

ihr*_*pin 19

试试这个

<ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/home_icon" 
     android:scaleType="fitStart"/>
Run Code Online (Sandbox Code Playgroud)

它对我有帮助.


mat*_*att 6

默认情况下,scaleType是第一个草图中的"fitCenter"/ ScaleType.FIT_CENTER.


要将drawable对齐ImageView 的左侧,如第二个草图所示:

在xml视图中:

<ImageView 
   android:scaleType="fitStart" />
Run Code Online (Sandbox Code Playgroud)

或者在Java类中:

ImageView image_view = [create new ImageView or getView from xml];
image_view.setScale(ScaleType.FIT_START);
Run Code Online (Sandbox Code Playgroud)


将drawable对齐ImageView 的右侧

在xml视图中:

<ImageView 
   android:scaleType="fitEnd" />
Run Code Online (Sandbox Code Playgroud)

或者在Java类中:

ImageView image_view = [create new ImageView or getView from xml];
image_view.setScale(ScaleType.FIT_END);
Run Code Online (Sandbox Code Playgroud)


dra*_*ard 1

尝试

android:gravity="left"
Run Code Online (Sandbox Code Playgroud)

重力是视图定位其内容的方式。适用于文本的 TextView 和图像的 ImageView。

编辑:

尝试制作一个包含 ImageView 的 FrameLayout。将 ImageView 的宽度和高度设置为“wrap_content”,并将父级的重力设置为“left”。

否则,在视图中实现 onDraw 并在您想要的任何位置绘制图像。