技术标签: 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方式设置背景,均不会产生被拉伸的情况。
1.整体分析1.1.源代码查看,可以直接Copy。public class UrlUtil { public static boolean isUrlPrefix(String url) { return url.startsWith("http://") || url.startsWith("https://"); } ...
今天遇到了一个很奇怪的问题,在将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...
先说两句我的使用感受:始于UI,终于问题当初就是被这个系统的UI所吸引才安装了这个界面,最后使用发现确实界面类似于mac,UI设计确实好看,但是使用起来就会发现还是会有很多小问题,无论是软件的安装还是其他只能说这个系统仅供体验,要想日常使用还是算了吧,废话不多说直接上界面1.屏幕的主界面老实说这个壁纸还是可以的,其实当初就是被这个界面吸引才安装的uos系统,还可以切换其他的壁纸2.设置...
PostgreSQL9.6中对WITH查询有如下描述WITH提供了一种方式来书写在一个大型查询中使用的辅助语句。这些语句通常被称为公共表 表达式或CTE,它们可以被看成是定义只在一个查询中存在的临时表。在WITH子句中的每仏个辅助语句可以是一个SELECT、INSERT、UPDATE或DELETE,并且WITH子句本身也可以被附加到一个主语句,主语句也可以是SELECT、INSERT、UPDA...
原文 :http://www.sykv.com/cat/depth/16164.html一年一度的校园招聘已经开始了,为了帮助参加校园招聘、社招的同学更好的准备面试,SIGAI 整理出了一些常见的机器学习、深度学习面试题。理解它们,对你通过技术面试非常有帮助,当然,我们不能只限于会做这些题目,最终的目标是真正理解机器学习与深度学习的原理、应用。可思数据-AI,人工智能,深度学习,机器学习,神...
最近在开发Android项目的时候,使用ScrollView嵌套webview在小米手机上出现了页面显示不全,文字错乱,背景成黑色的问题,抓耳挠腮找了半天,布局改了又改,知道将webview的高度由wrap_content改成match_parent,页面才正常显示,但与此同时又出现了新的问题,页面底部留了大片空白,实在是不美观,经过一番寻找,终于给找到一个合适的方法,在此记录一下。步骤很简单,...
注:以下内容学习于韦东山老师arm裸机第一期视频教程一.段的概念和重定位的引入 1.1 重定位的引入 2440框架图如下 CPU发出的地址可以直接到达SDRAM,SRAM,NOR但是无法直接到达NAND 因此我们的程序可以直接放在NOR,SDRAM直接运行,假设我们把程序烧录到NAND中,CPU无法直接从NAND取地址运行. ...
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的水太深,网上能找到的资料是那么的少,各个组织之间互有交叉,难弄的很,总结了下常用的BIOS资料网站,仅供参考,如果遗漏之处,请指出,博主将继续完善补充…… ...
本节引言:又是一个深坑,初学者慎入...本节将从普通的单线程下载 -> 普通多线程下载 ->-> 以及一个很实用的例子:利用Android那只DownloadManager更新apk并覆盖安装的实现代码!好的,这样看上去,本节还是蛮有趣的,开始本节内容!PS:我们把整个完整的多线程断点续传放到下一节中!1.普通单线程下载文件:直接使用URLConnection.openStrea...