【问题标题】:Blurry image in imageView of androidandroid的imageView中的模糊图像
【发布时间】:2016-06-09 22:33:15
【问题描述】:

在我的 android 应用程序中,我必须在图像视图中设置图像。原始图像的质量很好(1920*2000 像素)但是当我将其添加为图像资产并从 mipmap 加载时,图像变得模糊 (在 480*800 像素密度的设备中)但如果我将其直接粘贴到可绘制文件夹中,则它会在该设备中显示清晰的图片,但在平板电脑显示屏中不显示任何内容。我怎样才能在所有设备中获得清晰的图片?

代码

公共类 MainActivity 扩展 AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ImageView meter=(ImageView)findViewById(R.id.imageView);
    meter.setScaleType(ImageView.ScaleType.FIT_CENTER);

    Bitmap meterIcon =   BitmapFactory.decodeResource(getResources(),   R.mipmap.andes);

    Display display = getWindowManager().getDefaultDisplay();
    int width = (display.getWidth());
    int height = display.getHeight();

    meter.setMinimumWidth(width);
    meter.setMinimumHeight(height);

    meter.setMaxWidth(width);
    meter.setMaxHeight(height);
    meter.setImageBitmap(meterIcon);






   }
}

XML

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:paddingBottom="@dimen/activity_vertical_margin"
     android:paddingLeft="@dimen/activity_horizontal_margin"
     android:paddingRight="@dimen/activity_horizontal_margin"
     android:paddingTop="@dimen/activity_vertical_margin"
     tools:context="com.example.partha.rotate_check.MainActivity">


    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="142dp"
         />
   </RelativeLayout>

【问题讨论】:

    标签: android imageview image-quality


    【解决方案1】:

    图像质量降低的原因是当您将其添加为图像资产时,IDE 会自动为每个 android 分辨率创建许多新图像。所以在480p * 800p的设备屏幕上,android会加载该分辨率对应的图片,当然会比原来的分辨率低。

    如果您希望 android 始终使用原始分辨率图像,那么您只需将图像复制到 drawable 文件夹中,这非常好。

    【讨论】:

    • 但是这个过程在 1536*2048 像素分辨率的平板电脑上什么都没有显示
    • 由于您的图像在 Drawable 中,请尝试更改 Bitmap MeterIcon = BitmapFactory.decodeResource(getResources(), R.mipmap.andes);到位图meterIcon = BitmapFactory.decodeResource(getResources(), R.drawable.andes);
    • 和以前一样
    • 尝试完全删除该行,而是执行 Drawable MeterIcon = getResources().getDrawable(R.drawable.andes);然后做meter.setImageDrawable(meterIcon);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    • 2014-09-09
    相关资源
    最近更新 更多