我的应用程序有一个ImageButton,其质量太差。实际图像尺寸为4176 * 4176(4176像素),单独打开时看起来完全正常。但是,当我将其导入android studio并将其分配给ImageButton时,图像的质量会降低。我一直在尝试多种方法来解决此问题,但尚未成功。我对Android编程完全陌生。我转到res / drawable,然后右键单击以创建新的图片资源,然后指定导入png文件的位置。
这是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>
答案 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
提供帮助的原因。您可能也想删除该行。