Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android上提高图像分辨率_Android_Xml_Image_Android Studio_Resolution - Fatal编程技术网

如何在Android上提高图像分辨率

如何在Android上提高图像分辨率,android,xml,image,android-studio,resolution,Android,Xml,Image,Android Studio,Resolution,我上传了一张3000*3000像素的图片到安卓工作室 当我尝试将图像添加到我的应用程序时,图像看起来并不清晰 这是我的XML代码 <ImageView android:layout_width="match_parent" android:layout_height="200dip" android:scaleType="fitCenter" android:contentDescription="" android:layout_marginTop="2

我上传了一张3000*3000像素的图片到安卓工作室

当我尝试将图像添加到我的应用程序时,图像看起来并不清晰

这是我的XML代码

 <ImageView
   android:layout_width="match_parent"
   android:layout_height="200dip"
   android:scaleType="fitCenter"
   android:contentDescription=""
   android:layout_marginTop="20dip"
   android:layout_marginBottom="28dip"
   android:src="@mipmap/login_logo" />

我相信我的图像应该足够大,可以看到图像。有谁能建议我如何提高图像的分辨率

更新

当我上传图片时,系统自动创建了4个不同版本的图片


我建议在onCreate()函数中使用一种方法。它使用
BitmapFactory
加载图像

Options options = new BitmapFactory.Options();
options.inScaled = false;
Bitmap source = BitmapFactory.decodeResource(a.getResources(), path, options);
ImageView mImg;
mImg = (ImageView) findViewById(R.id.imageView);
mImg.setImageBitmap(source);

问题是您正在创建一个图标集,它实际上没有3000×3000像素。检查一下

应用程序正在使用更合适的大小(hdpi、xhdpi等)。但是您正在手动调整大小。这就是图标在屏幕上不清晰的原因

创建手动图像资源时,这是实际大小,具体取决于屏幕大小。助手获取原始图像并调整其大小

ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi
以像素为单位:

36x36 (0.75x) for low-density
48x48 (1.0x baseline) for medium-density
72x72 (1.5x) for high-density
96x96 (2.0x) for extra-high-density
144x144 (3.0x) for extra-extra-high-density
192x192 (4.0x) for extra-extra-extra-high-density
您可以按照以下说明创建自定义图像资源来解决此问题:

LDPI - 0.75x
MDPI - Original size you want to show
HDPI - 1.5x
XHDPI - 2.0x
XXHDPI - 3x
XXXHDPI - 4.0x

也可以使用外部库(如毕加索)加载原始图像并进行拟合。结果将更加专业,因为你可以动态适应,使用占位符,错误图像等


@Enzokie,是的,版本已经创建,如我在OP中更新的屏幕截图所示。你可以使用9个补丁图像。@IntelliJAmiya,谢谢。adjustviewbounds做什么?问题是,当android studio导入你的图像时,它会调整到推荐的图标大小,看看@adalPaRi的answera 3000x3000 32位位图会占用36MB,你确定这是个好主意吗?他的问题只是为了提高图像的分辨率。我只是给他一个选择。如果它太大,他可以使用刻度来降低分辨率。这是上面代码中的一个参数Android可以处理不同密度的不同大小的图像,为什么你想用肮脏的方式呢?我不认为这是肮脏的方式。我们可以将图像加载到项目文件夹中以保持分辨率,而不是直接加载到Android Studio文件夹中。在某些情况下,输入图像非常低。在这种情况下,我的方法是一个有意义的选择
Picasso.with(getActivity())
    .load(new File("path-to-file/file.png"))
    .into(imageView);