重置Bitmap大小                                                                           Bitmap bitMap = BitmapFactory.decodeFile(path); int width = bitMap.getWidth(); int height = bitMap.getHeight(); // 设置想要的大小 int newWidth = 500; int newHeight = 400; /…
今天使用LruCache写demo的时候,要获取Bitmap的大小 于是就用到了 return bitmap.getRowBytes() * bitmap.getHeight();// 获取大小并返回//Bitmap所占用的内存空间数等于Bitmap的每一行所占用的空间数乘以Bitmap的行数 为什么不用bitmap.getByteCount()呢?因为getByteCount要求的API版本较高,考虑到兼容性使用上面的方法 1.getRowBytes:Since API Level 12.ge…
很多人在调用图库选择图片时会在onActivityResult中用Media.getBitmap来获取返回的图片,如下: Uri mImageCaptureUri = data.getData(); Bitmap photoBmp = null; if (mImageCaptureUri != null) { photoBmp = MediaStore.Images.Media.getBitmap(ac.getContentResolver(), mImageCaptureUri); } 但是M…
前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. 图片缓存相关博客地址: Android图片缓存之Bitmap详解 Android图片缓存之初识Glide Android图片缓存之Glide进阶 Android图片缓存之Lru算法 Bitmap: Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件.…
前言: 最近准备研究一下图片缓存框架,基于这个想法觉得还是先了解有关图片缓存的基础知识,今天重点学习一下Bitmap.BitmapFactory这两个类. Bitmap: Bitmap是Android系统中的图像处理的最重要类之一.用它可以获取图像文件信息,进行图像剪切.旋转.缩放等操作,并可以指定格式保存图像文件. 重要函数 public void recycle() // 回收位图占用的内存空间,把位图标记为Dead public final boolean isRecycled() //判…
场景:对android4.4解码gif(解码文章见前面一篇)后的图片进行每帧处理,android4.3 解码出来的每帧都很完整,但是到android4.4版本就不完整了,每帧都是在第一帧的基础上把被改变的显示出来了,所以需要再次合成每帧 如图效果: 合成后: 代码直接看: /** * 将2张图片合成 * @param downBitmap 底部图片 * @param upBitmap 置顶的图片 * @return */ public static Bitmap compoundBitmap(B…
1.前言 Android中经常会遇到把View转换为Bitmap的情形,比如,对整个屏幕视图进行截屏并生成图片:Coverflow中需要把一页一 页的view转换为Bitmap.以便实现复杂的图形效果(阴影.倒影效果等):再比如一些动态的实时View为便于观察和记录数据.需要临时生成静态的 Bitmap. 2.实现方法 1)下面是笔者经常用的一个转换方法 public static Bitmap convertViewToBitmap(View view, int bitmapWidth, in…
1.BitmapFactory解析Bitmap的原理 BitmapFactory提供的解析Bitmap的静态工厂方法有以下五种: Bitmap decodeFile(...) Bitmap decodeResource(...) Bitmap decodeByteArray(...) Bitmap decodeStream(...) Bitmap decodeFileDescriptor(...) 其中常用的三个:decodeFile.decodeResource.decodeStream. d…
BitMap代表一张位图,扩展名可以是.bmp或者.dib.位图是Windows标准格式图形文件,它将图像定义为由点(像素)组成,每个点可以由多种色彩表示,包括2.4.8.16.24和32位色彩.例如,一幅1024×768分辨率的32位真彩图片,其所占存储字节数为:1024×768×32/8=3072KB位图文件图像效果好,但是非压缩格式的,需要占用较大存储空间,不利于在网络上传送.jpg格式则恰好弥补了位图文件这个缺点. 在android系统当中,bitmap是图像处理最重要的类之一.用它可以…
Android中如何将Bitmap byte裸数据转换成Bitmap图片int数据 2014-06-11 10:45:14   阅读375次 我们在JNI中处理得到的BMP图片Raw数据,我们应该如何转换为Bitmap呢? 由于得到的数据是unsigned char *类型的数据,而对于Bitmap的类来说,其类方法里面: 1 2 public static Bitmap createBitmap(int colors[], int offset, int stride,            …
获取适配尺寸的图片: File files = new File(imagePath); FileInputStream is = null; BufferedInputStream bis = null; BitmapFactory.Options opts = new BitmapFactory.Options(); if (files.length() < 51200) { // 20-50k opts.inSampleSize = 2; } else if (files.length()…
Android图片二进制与Bitmap.Drawable之间的转换 Java代码  public byte[] getBitmapByte(Bitmap bitmap){      ByteArrayOutputStream out = new ByteArrayOutputStream();      bitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);      try {          out.flush();          …
位图的旋转也可以借助Matrix或者Canvas来实现. 通过postRotate方法设置旋转角度,然后用createBitmap方法创建一个经过旋转处理的Bitmap对象,最后用drawBitmap方法绘制到屏幕上,于是就实现了旋转操作. 下面例子中把原位图和经旋转处理的位图都绘制到屏幕上,目的是做一个对比. package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mi…
位图的缩放也可以借助Matrix或者Canvas来实现. 通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后用drawBitmap方法绘制到屏幕上,于是就实现了缩放操作. 下面例子中把原位图和经缩放处理的位图都绘制到屏幕上,目的是做一个对比. package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; publ…
位图的旋转也可以借助Matrix或者Canvas来实现. 通过postRotate方法设置旋转角度,然后用createBitmap方法创建一个经过旋转处理的Bitmap对象,最后用drawBitmap方法绘制到屏幕上,于是就实现了旋转操作. 下面例子中把原位图和经旋转处理的位图都绘制到屏幕上,目的是做一个对比. package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; public class mi…
位图的缩放也可以借助Matrix或者Canvas来实现. 通过postScale(0.5f, 0.3f)方法设置旋转角度,然后用createBitmap方法创建一个经过缩放处理的Bitmap对象,最后用drawBitmap方法绘制到屏幕上,于是就实现了缩放操作. 下面例子中把原位图和经缩放处理的位图都绘制到屏幕上,目的是做一个对比. package xiaosi.bitmap; import android.app.Activity; import android.os.Bundle; publ…
<异空间>项目技术分享系列--扩展函数为Bitmap添加文字水印 对图片Bitmap绘制文字水印还是比较常见的需求,毕竟版权意识都在增强(用户可以给自己图片加上用户名),还可以为用户提供更多的信息(例如视频缩略图) 先上效果图(比较简单的效果,可继续扩展实现),以下代码使用Kotlin语言编写 给Bitmap添加文字水印 首先注意不能对进行拉伸或缩放前的Bitmap进行绘制水印,否则水印也会一起被拉伸缩放 应该提前将Bimap拉伸,再进行绘制操作 示例代码: //将Bitmap进行缩放,获得缩…
方法1. 利用Bitmap.createBitmap Bitmap adjustPhotoRotation(Bitmap bm, final int orientationDegree) {             Matrix m = new Matrix();            m.setRotate(orientationDegree, (float) bm.getWidth() / 2, (float) bm.getHeight() / 2); try { Bitmap bm1 =…
下列代码,请求网络图片转换为bitmap,然后保存到指定文件夹,微信,QQ分享,要求缩略图不大于32kb 压缩图片代码,使用了Glide来进行图片压缩处理 Glide.get(ShopDetailsActivity.this).clearMemory(); Log.e("分享图片地址链接分享", "分享图片地址:" + shopInfoEntity.getImgs().get(0).toString()); Glide.with(ShopDetailsActivit…
1. Resources resources = mContext.getResources(); Drawable drawable = resources.getDrawable(R.drawable.a); imageview.setBackground(drawable); 2. Resources r = this.getContext().getResources(); Inputstream is = r.openRawResource(R.drawable.my_backgrou…
String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePath); 如果图片过大,可能导致Bitmap对象装不下图片解决办法: String filePath="c:/01.jpg"; Bitmap bitmap=BitmapFactory.decodeFile(filePath,getBitmapOption()); //将图片的长和宽缩小味原来的1/2 private Op…
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的.一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构.重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能.下面我们就从几个方面来了解Android开发过程中的代码优化. 1)静态变量引起内存泄露 在代码优化的过程中,我们需要对代码中的静态变量特别留意.静态变量是类相关的变量,它的生命周期是从这个类被声明,到这个类彻底被垃圾回收器回收才会被销毁.所以,一般情况下,静态变量…
原文:关于Android中图片大小.内存占用与drawable文件夹关系的研究与分析 相关: Android drawable微技巧,你所不知道的drawable的那些细节 经常会有朋友问我这个问题:“能不能一个App只提供一套切图适应所有的分辨率呢?”我觉得有必要写一篇文章来研究一下这个问题,所以就有了这篇文章. 研究内容 研究方法 测试环境 研究过程 结果分析 结论 另外一个难以解释的问题 研究内容 本篇内容主要探讨以下场景:同一张图片,放置在不同的drawable文件夹,在同一设备上运行,…
package com.loaderman.customviewdemo; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.graphics.Matrix; import android.os.…
android开发中,图片的处理是非常普遍的,经常是需要将用户选择的图片上传到服务器,但是现在手机的分辨率越来越好了,随便一张照片都是2M或以上,如果直接显示到ImageView中,是会出现OOM的,上传到如服务器也会占用大量的流量,用户体验肯定不好了! 下面自己实现了图片的显示以及压缩功能,主要代码是从Volley的ImageRequest中copy过来,作为工具类方便以后图片处理 package com.img.util; import java.io.File; import java.i…
Android 获取屏幕大小和密度 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels;  // 屏幕宽度(像素) int height = metric.heightPixels;  // 屏幕高度(像素) float density = metric.density;  //…
1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的Gradle添加如下代码 dependencies { classpath 'com.android.tools.build:gradle:2.3.0' // 添加android-apt 插件 classpath 'com.neenbedankt.gradle.plugins:android-apt:…
1,接着我们上一篇继续介绍,在上一篇我们介绍了简单的@Inject和@Component的结合使用,现在我们继续以老师和学生的例子,我们知道学生上课的时候都会有书籍来辅助听课,先来看看我们之前的Student代码 package com.qianmo.rxjavatext; import android.util.Log; import javax.inject.Inject; /** * Created by Administrator on 2017/4/17 0017. * E-Mail:…
1,以前的博客也写了两篇关于Dagger2,但是感觉自己使用的时候还是云里雾里的,更不谈各位来看博客的同学了,所以今天打算和大家再一次的入坑试试,最后一次了,保证最后一次了. 2,接入项目 在项目的Gradle添加如下代码 dependencies { classpath 'com.android.tools.build:gradle:2.3.0' // 添加android-apt 插件 classpath 'com.neenbedankt.gradle.plugins:android-apt:…
android调节声音大小 1.背景音乐的一些知识 网上好多关于背景音乐添加用到的类: MediaPlayer,SoundPool,AudioManager的资料,可是有时候解决不了我们在开发中遇到的问题 我主要讲述一下调节音量这方面的经验吧 1:Android调节音量有很多可以调节系统的音量,媒体的音量,闹钟的音量,这时就需要用到AudioManager类 首先是得到AudioManager实例: 1 2 AudioManager am=(AudioManager)getSystemServi…