我有一个listView
行,我正在填充imageView
,190dp
高。加载的图像非常大,因为我从网上提取它。图像为640x812。
当图像加载到imageView
时,它似乎居中。但是,我希望图像的顶部与imageView
的顶部对齐,以便用户可以看到图像的顶部,并在其上书写。
这就是我所拥有的:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:minHeight="110dp">
<ImageView
android:id="@+id/viewpoint_imageView"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:scaleType="fitStart"
android:src="@drawable/default_background"
android:adjustViewBounds="true" />
<TextView
android:id="@+id/viewpoint_title"
android:layout_width="fill_parent"
android:layout_height="110dp"
android:gravity="center"
android:hint="16dp"
android:lineSpacingExtra="0dp"
android:lines="3"
android:text="TextView"
android:textSize="22sp"
android:textStyle="bold"
android:textAlignment="center"
android:textColor="#ffffff"
android:shadowColor="#000000"
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="2"/>
</FrameLayout>
根据我的阅读,使用fitStart
是我所需要的,但这根本没有帮助。
答案 0 :(得分:0)
正如我所知,您正在使用通用图像加载器,您需要添加以下行:
options = new DisplayImageOptions.Builder()
.imageScaleType(ImageScaleType.EXACTLY).build();
在ImageView中使用此属性:
android:layout_gravity="center"
android:adjustViewBounds="true"
android:scaleType="matrix"
ImageScaleType.EXACTLY使图像以正确的方式缩放。
如果要在ImageView的任何一侧对齐图像,则应使用以下行:
android:layout_alignParentTop="true"
请注意,ImageView父级必须是RelativeLayout,因此alignParentTop属性可以工作。
答案 1 :(得分:0)
使用此imageview类。它将通过顶部
进行裁剪 import android.content.Context;
import android.graphics.Matrix;
import android.widget.ImageView;
/**
* Imageview - Displaying top-crop scale of imageview
* @author Fthcmz
*/
public class TopCropImageView extends ImageView {
public TopCropImageView(Context context) {
super(context);
setScaleType(ScaleType.MATRIX);
}
@Override
protected boolean setFrame(int l, int t, int r, int b) {
final Matrix matrix = getImageMatrix();
float scale;
final int viewWidth = getWidth() - getPaddingLeft() - getPaddingRight();
final int viewHeight = getHeight() - getPaddingTop() - getPaddingBottom();
final int drawableWidth = getDrawable().getIntrinsicWidth();
final int drawableHeight = getDrawable().getIntrinsicHeight();
if (drawableWidth * viewHeight > drawableHeight * viewWidth) {
scale = (float) viewHeight / (float) drawableHeight;
} else {
scale = (float) viewWidth / (float) drawableWidth;
}
matrix.setScale(scale, scale);
setImageMatrix(matrix);
return super.setFrame(l, t, r, b);
}
}
答案 2 :(得分:0)
将图像视图的比例类型用作FIT_CENTER
。