android图片的缩放、圆角处理

android中图片缩放方法有三种:1,bitmapFactory;2,bitmap+metrix;3,thumbUtil

方法一:bitmapFactory:

public static Bitmap resizeBitmapByFactory(String path, int w, int h) {BitmapFactory.Options option = new BitmapFactory.Options();option.inJustDecodeBounds = true;Bitmap bitmap = BitmapFactory.decodeFile(path, option);int outWidth = option.outWidth;int outHeight = option.outHeight;option.inDither = false;option.inPreferredConfig = Bitmap.Config.ARGB_8888;if (outWidth != 0 && outHeight != 0 && w != 0 && h != 0) {int sampleSize = (outWidth / w + outHeight / h) / 2;option.inSampleSize = sampleSize;}option.inJustDecodeBounds = false;return BitmapFactory.decodeFile(path, option);}

方法二:bitmap+metrix

public static Bitmap resizeBitmapByMetrix(Bitmap bitmap, int w, int h) {Bitmap BitmapOrg = bitmap;int width = BitmapOrg.getWidth();int height = BitmapOrg.getHeight();int newWidth = w;int newHeight = h;float scaleWidth = ((float) newWidth) / width;float scaleHeight = ((float) newHeight) / height;Matrix matrix = new Matrix();matrix.postScale(scaleWidth, scaleHeight);// if you want to rotate the Bitmap// matrix.postRotate(45);Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,height, matrix, true);return resizedBitmap;}

方法三,使用系统自带的thumbutil:

 

public static Bitmap resizeBitmapByUtil(Bitmap bitmap, int w, int h) {return ThumbnailUtils.extractThumbnail(bitmap, w, h);}

三个方法消耗的时间为:72,9,13不过怀疑方法一消耗的时间有可能是由于从文件中加载图片所致。这点待定

二、实现图片的圆角效果

public static Bitmap toRoundCornerBitmap(Bitmap bitmap, int cornerPixel) {Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(), Config.ARGB_8888);Canvas canvas = new Canvas(output);final int color = 0xff424242;final Paint paint = new Paint();final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());final RectF rectF = new RectF(rect);final float roundPx = cornerPixel;paint.setAntiAlias(true);canvas.drawARGB(0, 0, 0, 0);paint.setColor(color);canvas.drawRoundRect(rectF, roundPx, roundPx, paint);paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));canvas.drawBitmap(bitmap, rect, rect, paint);return output;}

三、实现图片缩放,背景为圆角图片,则这个背景可以用图形资源文件来实现。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"><gradient  android:angle="90"  android:endColor="#00000000"  android:startColor="#00000000" />  <corners  android:bottomLeftRadius="12dp"  android:bottomRightRadius="12dp"  android:topLeftRadius="12dp"  android:topRightRadius="12dp" />  <stroke  android:width="1dip"  android:color="#eee" />  <solidandroid:color="#000"/><padding android:top="5dp"android:bottom="5dp"/></shape>

 

 

 

 

 

转载于:https://www.cnblogs.com/bobodeboke/p/3182819.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/575886.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat for MySQL介绍以及Navicat for MySQL基本使用方法

Navicat for MySQL是一款流行的MySQL图形化管理工具。 如何使用Navicat for MySQL连接MySQL服务器&#xff1f; 1.单击“连接”按钮&#xff0c;出现“新建连接”窗口。 2.分别输入连接名、MySQL 服务器主机地址、服务 端口号、用户名和密码&#xff0c;单击“确定” 按钮。…

python正则表达式怎么用_Python如何使用正则表达式

1. Python与正则表达式开始查看python当前如何通过使用re模式来支持正则表达式&#xff0c;re模式在古老的Python1.5版本中引入&#xff0c;用于替换哪些已经过时的regex模块和regsub模块---这两个模块在Python2.5版本中被移除&#xff0c;并且此后导入这两个模块中的任意一个都…

MySQL小白飞速成长记-运算符篇

运算符连接表达式中的各个操作数&#xff0c;其作用是指明对操作数所进行的运算。常见的运算有数学运算&#xff0c;比较运算和逻辑运算。运算符可以更加灵活地使用表中地数据&#xff0c;常见的运算符类型&#xff1a;算术运算符&#xff0c;比较运算符和逻辑运算符。 上面说…

批处理通过字符串截取得到文件名

当有一个完整的文件路径时&#xff0c;如何截取文件名呢&#xff0c;可以使用 echo 命令。 如下代码&#xff1a; echo off set a"E:\Program Files\Image-Line\FL Studio 9\FL.exe" set b"E:\Program Files\Image-Line\FL Studio 9\Plugins\VST\Revitar20\Effe…

可以批量转modis投影_SNAP批量处理Sentinel2数据

Sentinel-2数据以其高时空分辨率获得了越来越多的应用&#xff0c;然而由于Sentinel-2数据空间分辨率高&#xff0c;光谱分辨率高&#xff0c;数据量也较Landsat数据大幅上升。好在ESA SNAP软件批处理功能也很强大&#xff0c;可以支撑起大数据量的应用。下面就介绍一下如何使用…

MySQL表结构管理

今天我们来介绍一下MySQL数据类型&#xff0c;任何数据库中数据表的每个字段都必须设定数据类型&#xff0c;合适的数据类型可以有效的节省存储空间&#xff0c;有效的提升数据的计算性能&#xff0c;那么常见的数据类型有哪些呢&#xff0c;一起来看看吧 类型分类 类型 取值…

清空文件夹里面的所有文件和文件夹

private void deletefileOrDic(System.IO.DirectoryInfo path){try{foreach (System.IO.DirectoryInfo d in path.GetDirectories()){d.Delete(true);}foreach (System.IO.FileInfo f in path.GetFiles()){f.Delete();}}catch (Exception ex){}} 转载于:https://www.cnblogs.co…

涡轮增压扫地机器人_帮着做家务,好坏在哪里,科沃斯T5扫地机器人

小家电中要说对自己家里最有用的&#xff0c;其中之一就是扫地机器人&#xff0c;自从三年多前开始用了扫地机器人后&#xff0c;家里的地面是大为改观&#xff0c;劳动强度大为下降&#xff0c;可谓朕心甚慰。从此之后&#xff0c;一发不可收拾&#xff0c;用过也有20台以上的…

struts2整合uploadify插件怎样传参数

关于uploadify3.1&#xff0c;先看下帮助文档中的有些知识。 其中有个onUploadStart方法&#xff0c;我们可以使用这个向后台传参。 下面举个例子&#xff0c; js&#xff1a; <script type"text/javascript">$(function () {$(#actpic).uploadify({debug: fal…

教你正确把加减乘除运用在MySQL里面

加减乘除—>MySQL?相信在座的各位也想知道其中的奥秘&#xff1f;而这就不得不说到聚合函数&#xff0c;聚合函数用于对一组数据进行计算并返回一个汇总值&#xff0c;常用来统计记录行数&#xff0c;计算某个字段值的总和以及这些值的最大值&#xff0c;最小值和平均值等。…

对齐方式有那些_Excel基础:开始菜单之对齐方式,那些被遗忘的实用功能

今天小编要分享的Excel基础系列文章是"第三区块-对齐方式"。对齐方式主要是出来文字的排版问题&#xff0c;对齐方式包含的所有功能下面思维导图已经列出来。大多数功能都是我们常用的&#xff0c;也是比较简单的&#xff0c;这些功能小编就不说了&#xff0c;小编来…

来自Java空间的传送门

变量是程序中存储数据的基本单元&#xff0c;在该存储空间中&#xff0c;存储的数据值可以改变。 通过变量名可以简单快速地找到它存储的数据 使用Java的过程中我们需要注意一些细节&#xff0c;那就是Java语言的规范性了&#xff0c;比如Java的变量命名&#xff1a; 1.标识符…

python3转码python2_python2写的代码移植到python3后无法转码成中文文本,请大神指教,谢谢~...

chenmeiying(楼主)4天前C:\Users\www-3\AppData\Local\Programs\Python\Python36\python.exe C:/Users/www-3/Desktop/keyword_extraction-master/keyextract_word2vec_2.py b\xe8\xae\xbe\xe5\xae\x9a\xe5\x80\xbc b\xe8\xb8\xa9\xe4\xb8\x8b b\xe6\xb2\xb9\xe9\x97\xa8 b\xe4…

来及Java空间的传送门2

上一篇文章我们学习了Java的4种基本数据类型&#xff0c;今天我们就继续学习Java中的2种结构类型&#xff0c;分别是单分支结构&#xff0c;双分支结构和多重if结构 单分支结构&#xff1a;条件表达式的值必须为boolean类型 条件为true时执行if内的代码 双分支结构&#xff1…

UNIX环境高级编程——pthread_create的问题

linux 下常用的创建多线程函数pthread_create(pthread_t * thread , pthread_attr_t * attr , void *(*start_routine)(void*) , void *args);其中第一个参数用来保存线程信息&#xff0c;第二个参数指新线程的运行属性&#xff0c;可以设置为NULL&#xff0c;第三个参数为自定…

redis value最大值_Redis 的 maxmemory 和 dbnum 默认值都是多少?对于最大值会有限制吗?...

一、Redis 的默认配置了解 Redis 的都知道&#xff0c;Redis 服务器状态有很多可配置的默认值。例如&#xff1a;数据库数量&#xff0c;最大可用内存&#xff0c;AOF 持久化相关配置和 RDB 持久化相关配置等等。我相信&#xff0c;关于 AOF 持久化和 RDB 持久化的配置大家都很…

java成长之路

在Java语言中&#xff0c;一维数组的使用类似于变量的使用&#xff0c;分为以下4个步骤&#xff1a; 声明数组 创建数组 初始化数组 引用数组元素 语法&#xff1a;数据类型 [] 数组名 ; 或数据类型 数组名 []; int[] age; // 用于存储年龄 String names[]; // 用于存储…

程序员》推荐C++ 图书三人谈

程序员》推荐C 图书三人谈 主持人&#xff1a;熊节&#xff08;透明&#xff09;&#xff0c;《程序员》杂志编辑&#xff0c;C-View成员 嘉 宾&#xff1a;孟岩&#xff08;梦魇&#xff09;,联想公司掌上设备事业部应用开发处任职&#xff0c;C-View成员。与侯捷先生合译《C …

谁是对象谁是类?你搞清楚了吗?

今天带大家了解一下Java中类与对象的知识&#xff0c;一起来学习吧 现实世界中的所有具体的事物都可以视为对象 Java中万物皆对象&#xff0c;属性——对象具有的各种特征 每个对象的每个属性都拥有特定值&#xff0c;类是对对象的描述&#xff0c;是创建对象的“模板”&am…

实现页面适配_微信公众号文章页面适配深色模式

最近安卓微信7.0.10正式版发布&#xff0c;更新过后&#xff0c;很多用户发现&#xff0c;之前在测试版中对系统深色模式的适配功能被取消了&#xff0c;小伙伴们对此很是不满&#xff0c;好在Android 10系统手机用户占比很少&#xff0c;影响范围还不是很大&#xff0c;并且也…