我正确地获取了我下载的drawables并且它们正确显示。我只想在ImageView上显示图像的顶部144x284dip。相反,当下载图像时,ImageView会将自身调整为可绘制的宽度和高度。我已经尝试修改layoutparams和minimumwidth / minimumheight,但没有用。
我有什么办法可以强迫ImageView保持在144x284?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="284dip"
android:layout_height="144dip" >
<ImageView
android:id="@+id/imageViewLogo"
android:layout_width="284dip"
android:layout_height="144dip" />
</LinearLayout>
答案 0 :(得分:1)
好的,我解决了。
我刚刚这样做了:
Bitmap newBitmap = Bitmap.createBitmap(bm, 0, 0, 144, 284);
然后将其设置为ImageView。
答案 1 :(得分:1)
如果我理解正确,你想做两件事:
执行第二部分将要求您使用“矩阵”比例类型并将比例设置为1.0并将因子转换为0.0。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="284dip"
android:layout_height="144dip"
android:scaleType="matrix"
android:src="@drawable/ic_launcher" />
</LinearLayout>
默认情况下,比例因子为1,平移为0.因此,您无需执行任何其他操作。如果您希望进行不同的缩放和翻译,可以编写这样的代码。
void showImage(Bitmap bm) {
float scaleFactor = ...;
float transform = ...;
imageView.setImageBitmap(bm);
final Matrix matrix = new Matrix();
matrix.setScale(scaleFactor, scaleFactor);
matrix.setTranslate(transform, transform);
imageView.setImageMatrix(matrix);
}