首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android drawable对于API <23显示为拉伸,对于API 23和更高版本显示正确

Android Drawable 是一种用于存储图形资源的对象。它可以是位图、矢量图或者是一个层次结构的绘图对象。Drawable 对象可以用于绘制在 Android 应用程序的用户界面上,例如按钮、图标、背景等。

在 API <23 的 Android 版本中,当使用 Drawable 对象作为背景或者图标时,如果图像的大小与控件的大小不匹配,系统会默认将图像进行拉伸以适应控件的大小。这可能会导致图像失真或者不符合设计要求。

而在 API 23 及更高版本的 Android 中,引入了新的属性 android:drawableTintModeandroid:drawableTint,可以用于控制 Drawable 对象的显示方式。通过设置 android:drawableTintModesrc_in,并且设置 android:drawableTint 为透明色,可以确保 Drawable 对象在不进行拉伸的情况下正确显示。

对于 API 23 及更高版本的 Android,可以使用以下代码示例来设置 Drawable 对象的显示方式:

代码语言:txt
复制
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/my_drawable"
    android:drawableTintMode="src_in"
    android:drawableTint="@android:color/transparent" />

在这个示例中,@drawable/my_drawable 是一个 Drawable 对象的引用,android:drawableTintMode 设置为 src_inandroid:drawableTint 设置为透明色。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android图片资源

Note: 在Android 3.2之后的版本,有新的资源组织方式,本文只侧重关于早先的资源的组织方式的整理。...具体做法是: 像素密度分级mdpi基准,它的dpi值160,此时1dp = 1px。对于运行程序的设备,Android系统会根据其尺寸屏幕像素来计算出它的像素密度分级。...那么在xhdpi下,其dpi320,则1dp2px,正好是mdpi的2倍。 下面是bitmap的例子: 在为应用提供bitmap资源时,应该保证图片可以正确被缩放到不同的像素密度级别。...the default drawable directory (drawable/). 4.系统对图片资源的选择规则使用方式 对应一个代码中用到的图片资源,Android系统会使用以下步骤来选择出最适合当前运行设备的图片资源文件进行显示...九宫格图片是一种可拉伸的位图,在作为其它View的背景显示时,Android系统会自动将它改变到一个合适的大小。

1.1K100

Android ImageView 正确使用姿势

一、正确合理使用ImageView 的src background src :ImageView 原图内容,存放原图大小,不会被拉伸; background:Imageview的背景,会根据ImageView...给定的长宽进行拉伸; 在ImageView中,可以同时设置srcbackground属性(为了减少绘制,可以根据使用场景来设置相应属性); 由于src中存放的是原图大小,如果需要对其缩放,就需要使用android...另外, 像Drawable Paint中的都是调用setAlpha(int alpha) 在本节前就提了一个问题:直接使用mImageView.setAlpha(100),来设置ImageView的透明度是否正确...正确答案是: android:src在设置ImageView的setAlpha(int alpha)时,起作用; android:background在设置ImageView的setAlpha(int...; 设置maxWidth、MaxHeight; 设置设置layout_widthlayout_heightwrap_content 五、正确使用ImageView的“android:scaleType

2.2K80

Android样式的开发:drawable汇总篇

:.9.png,通过点九图片可以做局部拉伸,比如,一张圆角矩形图片,我们不想让它的四个边角都被拉伸从而导致模糊失真,使用点九图就可以控制拉伸区域,让四个边角保持完美显示。...着色模式,API Level 21(Android 5.0)才添加的属性 android:alpha 设置图片的透明度,取值范围0.0~1.0之间,0.0全透明,1.0全不透明,API Level...当裁剪方向horizontal时,会裁掉图片左右部分;当裁剪方向vertical时,会裁掉图片上下部分 fill 拉伸整张图片以填满容器的整个高度宽度。...设置drawable原有尺寸作为最小尺寸,设为true时,缩放基本无效,API Level最低要求11 使用的时候,clip一样,用法如下: 定义scale.xml: <?...浮点数表示相对于drawable的左边缘距离单位px,如5; 百分比表示相对于drawable的左边缘距离按百分比计算,如5%; 另一种百分比表示相对于父容器的左边缘,如5%p; 一般设置50%表示在

2.1K10

安卓点九图切法

点九图,是 Android 开发中用到的一种特殊格式的图片,文件名以”.9.png“命名。这种图片能告诉开发,图像哪一部分可以被拉伸,哪一部分不能被拉伸需要保持原有比列。...点九图常用于对话框聊天气泡背景图片中。 制作点九图有四个硬性要求,只要满足这四点,点九图就可以被正确识别。 要求一: 名称格式必须:文件名称 .9.png。...3.当伸缩区缩小到0之后,切图整体继续收缩(Android 4.3之前表现不同,谷歌公布的Android系统9月份的月度版本分布图数据显示4.3之前的机型占比不足7%,所以可忽略此情况)。...视觉边界布局(Optical bounds layout) 是在Android 4.3(Api level 18)中引入的一种新的布局对齐方式。...光学边界线标注的位置投影的位置,表示此区域在视觉上不可察觉。 对于那些有透明空白边的控件来说,使用视觉边界布局在显示效果上更加整齐。

99310

AppCompat v23.2  -- Vectors的时代

这听起来不算很大,但是对于设备来说节省是很重要的。快速的节省是为了存储传输。...= true } } 如果你还没有更新,在用v1.5后者更低的版本,你需要在你的build.gradle文件里添加以下内容: android { defaultConfig { //...当我们在用AppCompat时,VectorDrawableCompat不仅用在Api20或者更低。这意味着你当你在Api21或者更高时你在用framework层的VectorDrawable类。...android:src="@drawable/state_list_icon" /> 你不得不去用StateListDrawable,它也InsetDrawable,LayerDrawable,LevelListDrawable...他们用同样的方式工作,但是他们仅仅在api 11+可用。如果你尝试在api 10或者更低去用矢量动画,你会得到一个”null”或者什么都不显示

44040

Android中21种drawable标签大全

android:constantSize 当选择器各个状态的图片大小不一时,设置 true表示以最大的图片的尺寸显示,设置false以默认的图片的尺寸显示 子标签 item 该标签下可以定义drawable...浮点数表示相对于drawable的左边缘距离单位px,如5; 百分比表示相对于drawable的左边缘距离按百分比计算,如5%; 另一种百分比表示相对于父容器的左边缘,如5%p; 一般设置50%表示在...,会覆盖上面四个属性,但API Level要求21,即Android 5.0 子标签 如果不设置drawable属性,也可以定义drawable类型的子标签,如shape等 clip 使用clip标签可以对...当裁剪方向horizontal时,会裁掉图片左右部分;当裁剪方向vertical时,会裁掉图片上下部分 fill:拉伸整张图片以填满容器的整个高度宽度。...裁剪center时一样 fill_vertical:在垂直方向上拉伸图片以填满容器的整个高度。

2K20

9.png

2个像素,比如23x23像素的9.png图片被  打包后会变成21x21像素。...           6、右边3个黑色图形区域显示当前拉伸效果           7、选择好区域后,点击左上file-》save 9-path,保存图片,后缀名为xxx.9.png,此时图片效果:...这种图片是用于Android开发的一种特殊的图片格式,它的好处在于可以用简单的方式把一张图片中哪些区域可以拉伸,哪些区域不可以拉伸设定好,同时可以把显示内容区域的位置标示清楚。   ...简单来说,序号12标识了可以拉伸的区域,序号34标识了内容区域。当设定了按钮实际应用的宽和高之后,横向会拉伸1区域的像素,纵向会拉伸2区域的像素。如下图: ?   ...对齐方式是没有问题的,但是对于这种大圆角同时又有些不规则边框的的图形来说,错误的标注方式会让排版看起来很混乱。所以我们需要修正内容区域的线段位置长度。 ?

1.1K100

安卓应用安全指南 4.10 使用通知

Android 5.0(API Level 21)中增强了通知的通信功能,即使在屏幕锁定时也可以通过通知显示消息,具体取决于用户应用设置。...下面展示了示例代码,说明了如何正确将通知用于包含私人数据的消息。 要点: 1) 将通知用于包含私人数据的消息,请准备适合公开显示的通知版本(屏幕锁定时显示)。...4.3(API 级别 18)或更高版本的终端上,用户可以使用“设置”窗口,授予应用读取通知的权限。...); 4.10.2.3 对于包含私有信息的通知,可见性必须显式设置私有或秘密(必需) 即使屏幕锁定,使用 Android 5.0(API Level 21)或更高版本的终端也会显示通知。...4.3(API Level 18)或更高版本的终端上,某些用户选择的应用,已被授予用户权限,可能会读取所有通知中的信息。

80020

Android各种各样的Drawable-更新中

使用“点九”图片处理技术,可以将图片横向纵向同时进行拉伸,以实现在多分辨率下的完美显示效果。...点九图片在拉伸时仍能保留图像的渐变质感圆角的精细度。...左边上边的黑线形成的矩形区域是图片的拉伸区域,下边右边形成的矩形区域是内容所在的区域。黑线可以是连续的也可以是不连续的,不过为了达到最好的显示效果,最好使用连续的黑线。 ?...也就是level的大小从0到10000,level0时完全不显示10000时完全显示。是用Drawable提供的setLevel(int level)方法来设置剪切区域。 ?...drawable:引用的位图资源,如果空徐璈有一个Drawable类型的子节点 left:层相对于容器的左边距 right:层相对于容器的右边距 top:层相对于容器的上边距 bottom:层相对于容器的下边距

87030

安卓应用安全指南 5.2.3 权限保护级别 高级话题

5.2.3.6 Android 版本 6.0 更高版本中对权限模型规范的修改 Android 6.0(API Level 23)引入了权限模型的修改规范,这些规范影响了应用的设计规范。...修改后的规范的影响范围 应用在运行时需要权限请求的情况,仅限于终端运行 Android 6.0 或更高版本,并且应用的targetSDKVersion 23更高的情况。...开发人员必须遵守修改后的规范,或将应用的maxSDKVersion设置 22 或更低版本,来确保该应用不能安装在运行 Android 6.0(API Level 23)或更高版本(表 5.2-1)的终端上...当maxSdkVersion的值设置 22 或更低时,Android 6.0(API Level 23更高版本的设备,不再被列为 Google Play 中目标应用的可安装设备。...另一方面,由于未在 Google Play 以外的市场中检查maxSdkVersion的值,因此可能会在 Android 6.0(API Level 23)或更高版本中安装目标应用。

53410

《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目

cloudreader.gif Introduction 网易云音乐于2013年4月23日正式发布,是一款主打发现分享,带有浓厚社交基因的网络音乐产品。...干货订制: 可以筛选自己喜欢干货的类别,有全部、IOS、App、前端、休息视频拓展资源。 大安卓: 显示安卓的全部资讯。支持下拉刷新方便查看最新的资源。...玩安卓: 显示玩安卓轮播图及最新内容。 段子: 显示内涵段子糗事百科的段子内容。 书籍: 检索豆瓣心理学类的书籍并展示。...11、基于DataBinding的BaseActivityBaseFragment。 12、Fragment懒加载模式。 13、透明状态栏使用与版本适配。...Thanks 图片参考:iconfont、UI工程师Sandawang网易云音乐App。 参考项目:ImitateNetEasyCloud、banya;主要数据来源:Gank.Io、豆瓣Api

1.3K10

为何大厂的图片不会OOM?

上面已经说明了,表示压缩格式; quality :压缩质量,取值0-100,0表示最低画质压缩,100表示最高画质压缩,对于PNG压缩格式来说,该参数可以忽略,对于WEBP格式来说,小于100有损压缩格式...,在 Android 中,各个 drawable 目录对应的屏幕密度分别为下: ?...某个页面创建很多个 Bitmap,比如有两张图片 A B,通过点击某一按钮需要在 ImageView 上切换显示这两张图片, ?...可以在 Android Studio Profiler 中查看内存情况,多次切换图片后,显示的效果如下: ?...这是因为 Bitmap 的复用有一定的限制: 在 Android 4.4 版本之前,只能重用相同大小的 Bitmap 内存区域, 4.4 之后你可以重用任何 Bitmap 的内存区域,只要这块内存比将要分配内存的

1.1K20

AndroidDrawable 详解

通常将此类型的图像作为View的背景,将其宽度设置wrap_content。最常见的用法是一个Button,它必须根据里面显示的文字来拉伸。 ?...你可以使用鼠标来选择要拉伸的区域(使用Shift键并单击并拖动鼠标擦除区域),右侧的预览窗格将显示如何根据内部文本渲染图像。 ? 需要为可拉伸区域定义左边上边的线。...为了避免在上面的例子中拉伸这个气泡的箭头,我们定义了这个区域之外的区域。右侧底部的行定义了可以填充文本的位置。如果没有底线,您的文字将不会填满拉伸区域的整个宽度,并且可能无法正确居中。...如果你使用android:src作为vector drawable,你的应用可能会在较新的设备中正确呈现,但可能会在棒棒糖前设备中崩溃。 最终显示如下图所示: ?...及更高版本开始,现在可以将tint color应用于drawable

5.2K50

安卓应用安全指南 5.2.1 权限保护级别 示例代码

[23] 在 Android 6.0(API Level 23)及更高版本中,安装应用时不会发生用户的权限授予或拒绝,而是在应用请求权限时在运行时发生。...更多详细信息,请参见“5.2.1.4 在 Android 6.0 及更高版本中使用危险权限的方法”“5.2.3.6 Android 6.0 更高版本中的权限模型规范的修改”部分。...5.2.1.4 Android 6.0 及更高版本中使用危险权限的方法 Android 6.0(API Level 23)结合了修改后的规范,与应用实现相关 - 特别是应用被授予权限的时间。...在 Android 5.1(API 级别 22)更早版本的权限模型下(请参阅“5.2.3.6 Android 6.0 更高版本中的权限模型规范修改”一节),安装时授予应用申请的所有权限 。...以前,所有权限都是同时授予的;在 Android 6.0(API Level 23)及更高版本中,权限是单独授予的(按权限组)。

83810

android学习笔记----关于图形的基本处理讲解

但是,如果我们只有一个版本的图片,则对于屏幕上具有更多像素的高密度设备来说,Android 可能需要拉伸图片,或者另一方面,如果图片上的像素很多,Android 可能需要针对低密度设备缩小图片。...我们肯定不希望出现这种情况,要解决该问题,我们可以针对每个密度类别,同一图片提供不同尺寸的版本,这样会在所有设备上都能显示非常清晰的图片。...文件夹,看看某一图片,选中该文件 右击并选择“查看信息 (get info)”,在这里,对于该图片的 mdpi 版本,我们看到尺寸是 88 X 88 像素,所以在最终应用中,该图片的尺寸将显示 88dp...x 88dp,所以该版本的尺寸必须 88px x 88px 因为对于 mdpi 设备来说 1dp=1px,那么对于同一图片的 xxxhdpi 版本来说,像素尺寸是多少?...88*4=352) 我们这里是在应用将需要的存储空间应用将需要的处理能力之间找到一个折中,当我们提供多个版本的资源时,应用的确会占用更多的存储空间 但是却需要更少的处理能力,对于移动设备来说,这是一个非常值得达成的折中点

58620
领券