android 背景图缩放,解决android:background背景图片被拉伸问题_weixin_39639600的博客-程序员资料

技术标签: android 背景图缩放  

ImageView中XML属性src和background的区别:

background会根据ImageView组件给定的长宽进行拉伸,而src就存放的是原图的大小,不会进行拉伸。src是图片内容(前景),bg是背景,可以同时使用。

此外:scaleType只对src起作用;bg可设置透明度,比如在ImageButton中就可以用android:scaleType控制图片的缩放方式

如上所述,background设置的图片会跟View组件给定的长宽比例进行拉伸。举个例子, 36x36 px的图标放在 xhdpi 文件夹中,在854x480(FWVGA,对应hdpi)环境下,按照

xhdpi : hdpi : mdpi: ldip = 2 : 1.5 : 1 : 0.75

的比例计算,在FWVGA下,图标的实际大小应该是 27x27。

但是当我把它放到一个 layout_width = 96px, layout_height = 75px 的 LinearLayout,布局代码如下:

[html] view

plaincopy

实际情况是,我们得到的ImageButton的大小是 33x27,很明显width被拉伸了,这是我们不想看到的情况。

解决方案一:

代码中动态显式设置ImageButton的layout_width和layout_width,如下

[java] view

plaincopy

LinearLayout.LayoutParams layoutParam =newLinearLayout.LayoutParams(27,27);

layout.addView(imageButton, layoutParam);

不过,事实上我们并不希望在代码存在“硬编码”的情况。

解决方案二:

在你通过setBackgroundResource()或者在xml设置android:background属性时,将你的background以XML Bitmap的形式定义,如下:

[html] view

plaincopy

android:id="@id/toolbar_bg_bmp"

android:src="@drawable/toolbar_bg"

android:tileMode="disabled"android:gravity="top">

调用如下:

imageButton.setBackgroundResource(R.drawable.toolbar_bg_bmp)

或者

若背景图片有多种状态,还可参照toolbar_bg_selector.xml:

[html] view

plaincopy

如此,不管是通过代码方式setBackgroundResource()或XML android:background方式设置背景,均不会产生被拉伸的情况。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39639600/article/details/117511930

智能推荐

Android Url相关工具 通用类UrlUtil_weixin_30420305的博客-程序员资料

1.整体分析1.1.源代码查看,可以直接Copy。public class UrlUtil { public static boolean isUrlPrefix(String url) { return url.startsWith("http://") || url.startsWith("https://"); } ...

解决ssm项目或spring整合druid时连接数据库用户名异常_1橘猫的博客-程序员资料

今天遇到了一个很奇怪的问题,在将druid整合进spring的配置文件时,连接数据库出现了2020-09-18 01:43:42,726 2199 [eate-1151700737] ERROR aba.druid.pool.DruidDataSource - create connection SQLException, url: jdbc:mysql://localhost:3306/ssm_test?useUnicode=true&characterEncoding=utf-8, e

这道面试题,大部分人都答错了_数据结构大师的博客-程序员资料_前端面试答对一大半还有希望吗

附Java/C/C++/机器学习/算法与数据结构/前端/安卓/Python/程序员必读书籍书单大全:书单导航页(点击右侧 极客侠栈 即可打开个人博客):资源栈①【Java】学习之路吐血整理技术书从入门到进阶最全50+本(珍藏版)②【算法数据结构+acm】从入门到进阶吐血整理书单50+本(珍藏版)③【数据库】从入门到进阶必读18本技术书籍网盘吐血整理网盘(珍藏版)④【Web前端】从HT...

最新国产操作系统uos一小时使用体验_DedicationYu的博客-程序员资料

先说两句我的使用感受:始于UI,终于问题当初就是被这个系统的UI所吸引才安装了这个界面,最后使用发现确实界面类似于mac,UI设计确实好看,但是使用起来就会发现还是会有很多小问题,无论是软件的安装还是其他只能说这个系统仅供体验,要想日常使用还是算了吧,废话不多说直接上界面1.屏幕的主界面老实说这个壁纸还是可以的,其实当初就是被这个界面吸引才安装的uos系统,还可以切换其他的壁纸2.设置...

PostgreSQL WITH(WITH RECURSIVE) 查询表达式_linmao13037的博客-程序员资料

PostgreSQL9.6中对WITH查询有如下描述WITH提供了一种方式来书写在一个大型查询中使用的辅助语句。这些语句通常被称为公共表 表达式或CTE,它们可以被看成是定义只在一个查询中存在的临时表。在WITH子句中的每仏个辅助语句可以是一个SELECT、INSERT、UPDATE或DELETE,并且WITH子句本身也可以被附加到一个主语句,主语句也可以是SELECT、INSERT、UPDA...

机器学习与深度学习常见面试题_elon368的博客-程序员资料

原文 :http://www.sykv.com/cat/depth/16164.html一年一度的校园招聘已经开始了,为了帮助参加校园招聘、社招的同学更好的准备面试,SIGAI 整理出了一些常见的机器学习、深度学习面试题。理解它们,对你通过技术面试非常有帮助,当然,我们不能只限于会做这些题目,最终的目标是真正理解机器学习与深度学习的原理、应用。可思数据-AI,人工智能,深度学习,机器学习,神...

随便推点

ScrollView嵌套webview导致部分手机显示不全问题解决_小强的奋斗人生的博客-程序员资料_scrollview嵌套webview显示不全

最近在开发Android项目的时候,使用ScrollView嵌套webview在小米手机上出现了页面显示不全,文字错乱,背景成黑色的问题,抓耳挠腮找了半天,布局改了又改,知道将webview的高度由wrap_content改成match_parent,页面才正常显示,但与此同时又出现了新的问题,页面底部留了大片空白,实在是不美观,经过一番寻找,终于给找到一个合适的方法,在此记录一下。步骤很简单,...

第7课,代码重定位_qq_36521904的博客-程序员资料

注:以下内容学习于韦东山老师arm裸机第一期视频教程一.段的概念和重定位的引入    1.1 重定位的引入        2440框架图如下                    CPU发出的地址可以直接到达SDRAM,SRAM,NOR但是无法直接到达NAND        因此我们的程序可以直接放在NOR,SDRAM直接运行,假设我们把程序烧录到NAND中,CPU无法直接从NAND取地址运行. ...

java班级学生列表_Java课程设计---浏览学生(表格的使用)_weixin_39627144的博客-程序员资料

1、创建显示表格的窗体package com.student.view;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.border.Em...

【UEFI】--- 关于BIOS&UEFI查阅资料网站总结_一粒厘米的博客-程序员资料

  UEFI和BIOS的水太深,网上能找到的资料是那么的少,各个组织之间互有交叉,难弄的很,总结了下常用的BIOS资料网站,仅供参考,如果遗漏之处,请指出,博主将继续完善补充……


...

php 安卓下载文件,Android 文件下载(1)_Gaosaroma的博客-程序员资料

本节引言:又是一个深坑,初学者慎入...本节将从普通的单线程下载 -> 普通多线程下载 ->-> 以及一个很实用的例子:利用Android那只DownloadManager更新apk并覆盖安装的实现代码!好的,这样看上去,本节还是蛮有趣的,开始本节内容!PS:我们把整个完整的多线程断点续传放到下一节中!1.普通单线程下载文件:直接使用URLConnection.openStrea...

推荐文章

热门文章

相关标签