gpt4 book ai didi

android - 如何在不插入低分辨率文件的情况下显示像素化的 ImageView?

转载 作者:行者123 更新时间:2023-11-29 23:31:28 29 4
gpt4 key购买 nike

我想加载一个带有低分辨率 png 文件的 ImageView。我想显示像素,但 ImageView 显示的像素因插值而变得模糊。如何避免这种情况?我想显示所有像素。

这是我显示 ImageView 的方式:

Drawable dr = getResources().getDrawable(R.drawable.cloud);
Bitmap cloud1Bitmap = ((BitmapDrawable) dr).getBitmap();
float cloud1Ratio = (float)cloud1Bitmap.getHeight()/cloud1Bitmap.getWidth();

cloud1ImageView = new ImageView(this);
cloud1ImageView.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
cloud1ImageView.setImageBitmap(Bitmap.createScaledBitmap(cloud1Bitmap, cloud1Width, (int) (cloud1Width*cloud1Ratio), true));
main.addView(cloud1ImageView);

编辑:

尝试过该功能,但没有用。也许是因为我正在缩放图像?

    view.setLayoutParams(new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

width = (int) (sw/3);
Drawable dr = context.getResources().getDrawable(R.drawable.ufo);
BitmapDrawable bd = ((BitmapDrawable) dr);
Bitmap bitmap = bd.getBitmap();
float ratio = (float)bitmap.getHeight()/bitmap.getWidth();
height = (int)(width*ratio);

BitmapDrawable drawable = new BitmapDrawable(context.getResources(), Bitmap.createScaledBitmap(bitmap, width, height, false));
drawable.setFilterBitmap(false);
view.setImageDrawable(drawable);

在左侧您可以看到图像在游戏中的显示方式,在右侧您可以看到原始 png 中的图像:

enter image description here

最佳答案

正如@pskink 所说,您可以通过调用 setFilterBitmap(false) 来停止模糊/插值。对于这些示例,我在 240dp 的 ImageView 中使用了 24px 的图像:

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_android);
BitmapDrawable drawable = new BitmapDrawable(getResources(), bitmap);

ImageView image = findViewById(R.id.image);
image.setImageDrawable(drawable);

enter image description here

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_android);
BitmapDrawable drawable = new BitmapDrawable(getResources(), bitmap);
drawable.setFilterBitmap(false);

ImageView image = findViewById(R.id.image);
image.setImageDrawable(drawable);

enter image description here

关于android - 如何在不插入低分辨率文件的情况下显示像素化的 ImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52596702/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com