android ︰ 固定大小的图像如何 view 以编程的方式吗?

发布时间: 2017/3/19 17:18:51
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我设置的配置文件映像 account 通过选择图像从 gallery 如下

    @Override
public void onClick(View v) {
    switch (v.getId()) {
        case R.id.profile_image :
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent, "Select Picture"), GALLERY);

    }
    }
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == GALLERY && resultCode != 0) {
        profileImage.setImageBitmap(null);
            if (Image != null)
                Image.recycle();
        Uri mImageUri = data.getData();
        try {
            Image = MediaStore.Images.Media.getBitmap(this.getContentResolver(), mImageUri);
                profileImage.setImageBitmap(Image);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这工程的完美,但一个问题是有,图像高度和宽度得到更改为不同的图像。想要的什么是修正的图像大小和宽度为 150 dp 吗? 以下是我 xml 代码

<ImageView
    android:id="@+id/profile_image"
    android:layout_width="150dp"
    android:layout_height="150dp"
    app:srcCompat="@android:drawable/sym_def_app_icon"
    android:clickable="true"/>

解决方法 1:

为此目的,您可以使用"centerCrop"scaleType。

<ImageView
     android:id="@+id/profile_image"
     android:layout_width="150dp"
     android:layout_height="150dp"
     android:scaleType="centerCrop"/>

其他规模类型有︰

中心
在图像居中 view ,但执行不缩放。

CENTER_CROP
均匀缩放图像 (保持图像的长宽比),这两个图像的尺寸 (宽度和高度) 等于或大于的对应维度的 view (空白)。

CENTER_INSIDE
均匀缩放图像 (保持图像的长宽比),这两个图像的尺寸 (宽度和高度) 会等于或小于的对应维度的 view (空白)。

FIT_CENTER
缩放图像使用中心。

FIT_END
缩放图像使用结束。

FIT_START
缩放图像使用启动。

FIT_XY
缩放图像使用填充。

MATRIX
缩放图像 matrix 绘图时。

官方微信
官方QQ群
31647020