- 浏览: 375875 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
longxishui12:
这个一定要顶得高高的。
[Android UI界面] android中仿iphone实现listview的反弹效果 -
klower.jiang:
Good job, Thank you so much!
能够兼容ViewPager的ScrollView -
ZSRTFAT:
...
file size 的大小计算
drawable 一些总结:
http://www.cnblogs.com/fighter/archive/2012/02/20/android-bitmap-drawable.html
(drawable的一些处理)
//1,已将图片保存到drawable目录下 //通过图片id获得Drawable Resource res=gerResource(); Drawable drawable=res.getDrawable(id);//id为R.drawable.图片名称 //通过图片id获得Bitmap Resource res=gerResource(); Bitmap bitmap=BitmapFactory.decodeResource(res, id); //若只知道图片的名称,可以通过图片的名称获得图片的id //name:图片的名称 defType:图片的类型(png,jpeg),defPackage:工程的包名 int id =int id =res.getIdentifier(name, defType, defPackage); //获得id之后可以根据你的需要来获得Bitmap或Drawable //2,已将图片保存到assest目录下 //知道图片的名称,通过inputstream打开图片 AssetManager asm=getAssetMg(); InputStream is=asm.open(name);//name:图片的名称 //获得Drawable Drawable da = Drawable.createFromStream(is, null); //获得Bitmap Bitmap bitmap=BitmapFactory.decodeStream(is); //3,图片保存在sdcard,已知图片的路径 //图片路径 String path = Environment.getExternalStorageDirectory().toString()+ "/DCIM/device.png"; RandomAccessFile mMiniThumbFile; File imgfile = new File(path); try { mMiniThumbFile = new RandomAccessFile(imgfile, "rw"); } catch (IOException ex) { // Open as read-only so we can at least read the existing // thumbnails. try { mMiniThumbFile = new RandomAccessFile(imgfile, "r"); } catch (IOException ex2) { // ignore exception System.out.println(ex2.toString()); } } data= new byte[10553]; try { mMiniThumbFile.seek(0); int got = mMiniThumbFile.read(data, 0, 10552); System.out.println("got="+got); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println(e.toString()); } if (data != null) { //通过data获得bitmap Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0,data.length);
在进行Android开发过程中,我们经常会接触到Drawable对象(官方开发文档:A Drawable is a general abstraction for "something that can be drawn."),那么,若要使用数据库来进行存储及读取,该如何实现?
保存:
//第一步,将Drawable对象转化为Bitmap对象 Bitmap bmp = (((BitmapDrawable)tmp.image).getBitmap()); //第二步,声明并创建一个输出字节流对象 ByteArrayOutputStream os = new ByteArrayOutputStream(); //第三步,调用compress将Bitmap对象压缩为PNG格式,第二个参数为PNG图片质量,第三个参数为接收容器,即输出字节流os bmp.compress(Bitmap.CompressFormat.PNG, 100, os); //第四步,将输出字节流转换为字节数组,并直接进行存储数据库操作,注意,所对应的列的数据类型应该是BLOB类型 ContentValues values = new ContentValues(); values.put("image", os.toByteArray()); db.insert("apps", null, values); db.close();
代码看起来比较繁琐,是因为过程的确挺繁琐的,不过可以简单的总结为:
Drawable→Bitmap→ByteArrayOutputStream→SQLite
读取:
//第一步,从数据库中读取出相应数据,并保存在字节数组中 byte[] blob = cursor.getBlob(cursor.getColumnIndex("image")); //第二步,调用BitmapFactory的解码方法decodeByteArray把字节数组转换为Bitmap对象 Bitmap bmp = BitmapFactory.decodeByteArray(blob, 0, blob.length); //第三步,调用BitmapDrawable构造函数生成一个BitmapDrawable对象,该对象继承Drawable对象,所以在需要处直接使用该对象即可 BitmapDrawable bd = new BitmapDrawable(bmp);
很显然,读取是存储的相反过程,代码思路也差不多,但实现起来简单很多,总结思路为:
SQLite→byte[]→Bitmap→BitmapDrawable
发表评论
-
file size 的大小计算
2012-04-25 18:21 11195file size 的大小计算: String an ... -
SpannableStringBuilder
2012-04-25 17:34 4877设置指定文字颜色: String str = &quo ... -
sdcark卡。
2012-04-24 16:53 811转载:http://www.cnblogs.com/Terry ... -
android读写文件
2012-04-22 17:16 885一、 从resource中的raw文件夹中获 ... -
读取assessts的txt
2012-04-22 17:14 902try { // Return an Asset ... -
android 应用程序Activity之间数据传递与共享的几种途径
2012-04-21 22:09 946转载:http://blog.csdn.net/u0fly/a ... -
android 界面布局 很好的一篇总结 【转】
2012-04-19 16:17 1219转载:http://www.eoeandroid. ... -
activity以dialog形式显示
2012-04-11 17:41 62911、AndroidManifest.xml 文件中,申明 ac ... -
Android开发神贴整理
2012-04-06 14:36 724Android开发神贴整理 http://www.apkbu ... -
Google Android开发精华教程(apkbus整理)
2012-04-06 14:35 759转载 Google Android开发精华教程 ... -
使用Iterator 或for-each注意:java.util.ConcurrentModificationException
2012-04-05 16:37 858使用Iterator 或for-each注意:java.ut ... -
分享45个源码
2012-03-31 09:58 812http://www.apkbus.com/android-2 ... -
不显示近期任务
2012-03-28 17:11 1527manifest中设置activity为: (在长按HOME键 ... -
获取SD卡中的apk信息
2012-03-21 15:22 1146转自: http://hi.baidu.com/jeremy ... -
遮罩效果。
2012-03-15 16:53 870来自: http://www.ligotop.com/201 ... -
收藏Android下bitmap内存限制OUT OF MEMORY的方法
2012-03-15 16:15 1533收藏Android下bitmap内存限制OUT OF M ... -
android课程
2012-03-14 15:40 707http://www.mobidever.com/course ... -
获得联系人
2012-03-14 11:56 1030String contactId ; privat ... -
学习网站
2012-03-06 18:10 671http://www.cyqdata.com/android/ ... -
Animation
2012-03-06 16:16 759http://gundumw100.iteye.com/ca ...
相关推荐
android 通过图片名称获取 drawable 目录下的图片 ~~~~~~~~~~~~~~~~~
OneDrawable - 仅使用一张资源图片为 View 设置具有按下效果的背景,详细原理:http://gudong.name/2017/04/05/OneDrawable.htmlGradleAdd it in your root build.gradle at the end of repositories:allprojects...
演示了各种Drawable的效果,以及自定义Drawable
依赖的drawable文件
Drawable基础Demo
Android中Drawable分类汇总,学习drawable的文档,很全
android中的drawable集合,包括Bitmap、shape、Layer、Transition等等
Android的Drawable学习Demo
Android所有系统资源图标android.R.drawable.xxx查看软件 源码地址:http://blog.csdn.net/dianyueneo/article/details/7197067
android-gif-drawable 用于在Android上显示动画GIF
文档中描述了Drawable Bitmap 几种转换方法供初学者使用。方法都是经过实践验证的。
自定义Drawable实现圆形图片和圆角图片,个人感觉挺简单的
Android中不同类型的Drawable使用
自定义Drawable 实现图片圆角、圆形、椭圆形,帮助理解自定义Drawable; 自定义Drawable 实现图片圆角、圆形、椭圆形,帮助理解自定义Drawable;
本次我们主要讲解Android平台下的各种Drawable,这里在SDK的android.graphics.drawable包下面可以看到有各种Drawable类多达十几种,它们到底之间有什么关系和区别呢?
Drawable资源管理图片处理
Android自定义Drawable的代码例子。用于演示自定义Drawable的功能,包括自定义形状、自定义水印、自定义淡出等几种类型的Drawable。
这个程序是对android的部分Drawable的实现。包括了BitmapDrawable,InsetDrawable,ClipDrawable,TransitionDrawable,GradientDrawable,ScaleDrawable,LevelListDrawable,StateListDrawable,layerDrawable。 ...
DrawableTextView.zip,自定义控件 :drawable 跟随TextView居中 The drawable follows the text centered