位置: 编程技术 - 正文

Android中图片适配屏幕问题(android图片适配方法)

编辑:rootadmin

推荐整理分享Android中图片适配屏幕问题(android图片适配方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android 图片放大,android图片布局,android 图片放大缩小 实现,android图片适配方法,android 图片,android图片大小设置,android 图片,android图片适配方法,内容如对您有帮助,希望把文章链接给更多的朋友!

近日在学习美化android应用的界面,在做APP启动画面时遇到这种情况:自己很喜欢的一张图跟手机屏幕分辨率不统一!!多么痛苦的一件事!于是网上各种搜寻,有很多种方法,基本都试过,效果都不太好,下面说说网上很多人的回答。

其中一种方法就是在layout中加上setScaleType,可以设置几个&#;,下面分别说明:

1、ImageView.ScaleType.CENTER。按照图片本身的大小在View中居中显示,如果图片本身大于屏幕尺寸的话,则截取中间部分显示。

2、ImageView.ScaleType.CENTER_CROP。按比例扩大,仍然是居中显示,使得图片的宽或高大于或等于View的边长。

3、ImageView.ScaleType.CENTER_INSIDE。按比例缩小,效果与上面一点相反。

4、ImageView.ScaleType.FIT_CENTER。把图片按比例扩大/缩小到View的宽度,居中显示。

5、FIT_START, FIT_END在图片缩放效果上与FIT_CENTER一样,但是显示的位置不同,FIT_START是置于顶部,FIT_CENTER居中,FIT_END置于底部。

6、 FIT_XY。不按比例缩放图片,目标是把图片塞满整个View。此方法可使图片全屏显示。

但是!!!以上方法会剪切图片或者直接变形,所以最终效果是非常差的。下面是效果图:

Android中图片适配屏幕问题(android图片适配方法)

然后我找到一个博主写的方法,在使图片填满屏幕的前提下,最大程度保证图片的缩放效果,保证图片不变形。下面贴上代码:

private void setBsetBitmap(Bitmap bitmap, ImageView imageView, int width, int height) { //计算最佳缩放倍数// float scaleX = (float) width / bitmap.getWidth();// float scaleY = (float) height / bitmap.getHeight();// float bestScale = scaleX < scaleY ? scaleX : scaleY; //计算最佳缩放倍数,以填充宽高为目标 float scaleX = (float) width / bitmap.getWidth(); float scaleY = (float) height / bitmap.getHeight(); float bestScale = scaleX > scaleY ? scaleX : scaleY; //以填充高度的前提下,计算最佳缩放倍数 // float bestScale = (float) height / bitmap.getHeight(); float subX = (width - bitmap.getWidth() * bestScale) / 2; float subY = (height - bitmap.getHeight() * bestScale) / 2; Matrix imgMatrix = new Matrix(); imageView.setScaleType(ScaleType.MATRIX); //缩放最佳大小 imgMatrix.postScale(bestScale, bestScale); //移动到居中位置显示 imgMatrix.postTranslate(subX, subY); //设置矩阵 imageView.setImageMatrix(imgMatrix); imageView.setImageBitmap(bitmap); }

参数:bitmap:即所要显示的图片;imageView:显示图片的控件;width:屏幕的宽度;height:屏幕高度。屏幕的宽高可用如下方法获取:

WindowManager windowManager = getWindowManager();Display display = windowManager.getDefaultDisplay();screenWidth = display.getWidth();screenHeight = display.getHeight();

在要显示图片的界面中调用此方法可使图片不变形贴合屏幕,当然这样做跟用适合屏幕分辨率的图片显示还是有差别的,毕竟不是原图,经过一定比例的调整,但是在这几种方法中,这个方法的效果是最好的。下面是效果图:

虽然图片被截掉了一部分但是整体看起来好看很多了,因为这张图片尺寸比手机高太多,所以差别会大一点,如果只是尺寸跟手机屏幕差别不大的话与原图差别是非常细微的。

还有一种方法是在layout中设置保持宽高比,setadjustViewBounds(也可在代码中完成),需要注意的是这个方法需要设置maxHeight和maxWidth,同时设置layout_height和layout_width为wrap_content,也可达到同样效果,但是用这个方法在不同尺寸的手机上仍旧会有不同效果,所以还是写一个setBsetBitmap方法比较好用,当然了,如果你有适配屏幕的图片就不用那么麻烦了。

新人第一次写博,也刚学习安卓不长时间,有什么错误各位大虾请指正!

参考文章:

android之存储篇_SQLite数据库_让你彻底学会SQLite的使用 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,

Android的材料设计兼容库(Design Support Library) 原文链接:

Android设计模式--建造者模式 回头看自己写的东西,在关于Android自定义控件时,写的代码适用性比较高,但是看上去没有什么技术含量,所以在学习设计模式的时候,想想有些东西

标签: android图片适配方法

本文链接地址:https://www.jiuchutong.com/biancheng/386726.html 转载请保留说明!

上一篇:Android多点触控技术实战,自由地对图片进行缩放和移动(安卓多点触屏在哪里设置)

下一篇:android之存储篇_SQLite数据库_让你彻底学会SQLite的使用(android存储方式)

  • 出口免税收入的计税依据
  • 工商税收是什么意思啊
  • 工商年报已报网上还查不出来
  • 入账价值 入账成本 入账金额
  • 个人接受现金捐赠的例子
  • 代扣代缴个税返点怎么申请
  • 贴现利息支付方式
  • 公司代扣代缴的个人所得税怎么做账
  • 当月作废的专票需要账务处理吗
  • 一般纳税人有按季申报的吗
  • 质量扣款可以放到费用吗
  • 外贸企业出口货物会计账务处理
  • 所得税的税率有哪几种
  • 不是公司员工可以买原始股吗
  • 专项应付款转资本公积需要什么附件
  • 如何激活windows11专业版?
  • 腾讯电脑管家网络修复
  • 内部控制制度包括哪些基本内容?
  • 公益性捐赠所得税税前扣除标准
  • 应付职工薪酬转入管理费用
  • 成本核算核算要素有哪些
  • 怎样提取word中的图片
  • Win7系统中如何快速查询文件内容
  • mac双系统切换键
  • window清除临时存储文件夹
  • 实收资本可以大于注册资本嘛
  • php sybase_fetch_array使用方法
  • 结转待抵扣
  • 混合销售账务处理办法
  • ghoststartservice.exe是什么进程 有什么作用 ghoststartservice进程查询
  • php如何防止xss攻击
  • 公司购买的大型安装设备什么时候转入固定资产
  • wordpress文章编辑
  • php实现日历
  • 海月水母有性别吗
  • 支付劳务公司的劳务费计入应付账款还是其他应付款
  • 采用汇兑的方式归还前欠货款
  • 销售过程会计核算视频
  • html做超链接
  • vue2.0安装
  • 使用灭火器人要站在上风口还是下风口
  • php打不开网页
  • 简单易学的前端框架
  • 商业承兑汇票如何查询
  • 营业外收支的账户是什么
  • 小规模收到成本发票分录
  • 全国通用机打销售票真伪
  • 公司销售自己使用过的固定资产
  • 企业的留存收益有
  • 工会经费能不能用于体检
  • mysql索引最大数量
  • 应付账款的入账价值应当包括增值税的进项税额
  • 个人独资企业需要会计做账吗
  • 应收账款调增调减?
  • 进项税额转出的几种情况
  • 税控盘反写是不是说明税都已经成功申报了
  • 固定资产以提足金为准吗
  • 工程建设项目融资方式有哪些
  • 车船税没有发票可以入账吗
  • 单据 凭证
  • 可供出售金融资产和交易性金融资产
  • 出差包干费包括什么
  • 小规模纳税人财务报表季报怎么填
  • 员工个人买的保险可以税前扣除吗
  • 公司没开户需要做账吗怎么做
  • 房地产开发企业资质管理规定
  • windows使用痕迹是指是什么
  • sql server如何判断数据库是否存在
  • mysql binlog redo
  • centos rpc
  • mysql mac下载
  • wrme.exe是什么
  • 电脑开机后显示xp界面后一直是黑屏状态
  • window8输入法怎么设置
  • js的正则表达式
  • nodeJS文件操作自动创建目录
  • shell字符串截取加替换
  • 网页加载多个js文件冲突
  • 非常棒的jQuery图片轮播效果
  • 税控盘反写后才能开票吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设