android - 保持按钮可绘制图像尺寸为原始尺寸
问题描述
我创建了一个在其中使用 Google Books API 的应用程序。
作为他们需要的属性的一部分,我需要在每个查询结果中添加以下按钮:
现在,我想将该图像用作按钮的背景,但得到了以下结果:
如您所见,它似乎被拉长了质量差。
我使用的xml是:
<ImageButton
android:id="@+id/tv_Link"
android:layout_width="wrap_content"
android:layout_height="24dp"
android:layout_alignStart="@+id/imagecard"
android:layout_alignEnd="@+id/imagecard"
android:layout_alignBottom="@+id/imagecard"
android:background="@drawable/gbs_preview_button"
android:elevation="50dp"
android:fontFamily="@font/assistant_semibold"
android:gravity="center"
android:textColor="@color/colorLightPurple"
android:textSize="8sp" />
为了修复它,我决定使用位图:
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:src="@drawable/gbs_preview_button"
android:tileMode="disabled"/>
问题是它变得像这样小(质量很好,但很小):
此尺寸太小,因为它们要求高度为 24dp。
有什么办法可以将此图像添加到按钮,使其高度为 24dp 并仍然保持图像的质量?
谢谢
解决方案
当您想将高度硬编码为 时24dp
,您还可以将宽度硬编码为一个值,该值保持原始图像大小的纵横比为 (88 x 31)。
因此,将宽度设置为68dp
而不是wrap_content
推荐阅读
- ngx-bootstrap - bs-sortable selection on perticular item 在拖动时选择完整的网格
- django - 如何以提升的权限运行 django 管理自定义命令?
- php - 如何在 ubuntu 14.04 上为 php 7.2 编译和安装 ext-pdo_sqlite
- angular - 如何在业力测试期间打印日志
- c# - 为什么在 C# 中使用 PKCS7 和 X509Certificate 打开数字签名的 pdf 文档时出现错误?
- php - PHP Include - 在包含的代码中不显示错误
- java - 应用程序不会请求相机许可
- pytorch - Pytorch:为什么 ConvTranspose2d 和 Conv2d 中的权重顺序不同?
- ios - 我们现在如何使用 iOS 播放 YouTube 视频?
- function - 函数内的函数未在 React Native 中调用