为什么ImageButton的质量模糊或降低到最坏的程度?

时间:2018-09-10 17:21:13

标签: java android imagebutton

我的应用程序有一个ImageButton,其质量太差。实际图像尺寸为4176 * 4176(4176像素),单独打开时看起来完全正常。但是,当我将其导入android studio并将其分配给ImageButton时,图像的质量会降低。我一直在尝试多种方法来解决此问题,但尚未成功。我对Android编程完全陌生。我转到res / drawable,然后右键单击以创建新的图片资源,然后指定导入png文件的位置。

实际图片:enter image description here 摄影棚内的图片:enter image description here

这是activity_main.xml中的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center"
android:orientation="vertical">

<ImageButton
    android:id="@+id/police"
    android:layout_width="317dp"
    android:layout_height="295dp"
    android:layout_centerInParent="true"
    android:adjustViewBounds="true"
    android:scaleType="fitXY"

    android:background="@drawable/custom_button"
    />
</LinearLayout>

调用图像的自定义按钮代码:

<item
    android:state_pressed="true"
    android:drawable="@mipmap/pressed" />

<item
    android:drawable="@mipmap/defaultt" />
</selector>

2 个答案:

答案 0 :(得分:2)

首先,我将回顾Android上与密度无关的像素。这是一个很好的博客,涵盖了以下概念:https://www.captechconsulting.com/blogs/understanding-density-independence-in-android

主要问题是图像(高分辨率)已被压缩以适合图像按钮的内部。通常,您可能希望通过不同的可绘制资源目录(例如,drawable-hdpi,drawable-xhdpi,drawable-xxhdpi)包含不同密度的图像资产。

但是,如今,您可以使用矢量可绘制对象,假设您有能力生成SVG资产文件,则可以减少每个密度桶具有多个资产的需求:https://developer.android.com/guide/topics/graphics/vector-drawable-resources

答案 1 :(得分:2)

您实际上是在参考<div id="homebanner-carousel" class="carousel slide " data-pause="false" data-ride="carousel"> <ol class="carousel-indicators"> <li data-target="#homebanner-carousel" *ngFor="let item of homeBannerInformation; let i = index" [attr.data-slide-to]="i" [class.active]="i == 0"></li> </ol> <div class="carousel-inner"> <div class="carousel-item" *ngFor="let item of homeBannerInformation; let i = index" [class.active]="i == 0"> <img class="d-block mx-auto" src="{{item.imageUrl}}"> </div> </div> </div> </div> 目录中的类似Launcher图标的图像。

我建议减小仅用于/mipmap的图像尺寸,然后将其以所需的质量或可能小于当前图像的质量放置在ImageButton内,而不是将其放置在{{1 }}目录。

此外,我实际上没有看到/drawable如何为/mipmap提供帮助的原因。您可能也想删除该行。