1、Bitmap.Config参数
Possible bitmap configurations. A bitmap configuration describes how pixels are stored. This affects the quality (color depth) as well as the ability to display transparent/translucent colors
即决定图片像素点的存储,即用图片查看器看图片属性时候的位深参数。
ARGB_4444 每个像素点用2byte表示,A即表示透明度,即ARGB每个属性用4个bits记录,虽然文档推荐换成ARGB_8888,但是有的时候还是需要用这个。- - - - 一切为了内存
ARGB_8888 每个像素点4个byte。也就是说,同样的图片,这种方式存储的,会比上边的大一倍
ALPHA_8 只是用来记录半透明值,而不记录RGB值,目前没有用到过。(用这个值生成的BItmap可以设置在ImageView上,效果挺有意思的... 但是,compress到disk上,发现文件大小为0)
RGB_565 分别用 5个bits 即32位有效值保持R,B,6个bits保存G,则一个像素使用2个byte。没有记录透明层。
因为android中,JPG不会有透明属性,所以JPG类型的文件一般使用RGB_565来存储。而PNG一般会用ARGB_8888/4444来存储,当然也会有565形式。但是要注意的是PNG在调用Bitmp.compress方法的时候,因为PNG是无损存储,则quality参数没有用。但是使用JPEG时候,会把透明层部分压缩掉
一个示例:
InputStream inputStream = getAssets().open("boliu123.png"); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); if(bitmap.getConfig()!=null){ Config config = bitmap.getConfig(); Log.i("config", config.name()); if(bitmap.getConfig()==Config.ARGB_8888){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); int piexl[] = new int[width*height]; bitmap.getPixels(piexl, 0, width, 0, 0, width, height); Bitmap bitmap1 = Bitmap.createBitmap(piexl, width, height, Config.ARGB_4444);//一切为了内存 bitmap1.compress(CompressFormat.PNG, 100, os) } }
未完待续...
如果你使用linux进行日常工作,你应该已经熟悉其中一些目录。不过,现在进一步检查,在嵌入式linux系统中,要如何使用一个典型根文件系统的内容。
首先,所有与多用户可扩展环境有关的目录,例如/home,/mnt./opt. /root,都应该省略。调整根文件系统的时候,你甚至可以进一步移出/tmp /var,不过这么做有可能会危害某些软件的运行。因此不建议采用这种过分简化的做法。
依你的引导加载程序和它的配置而定,你可能不需要使用/boot目录。
其余的目录包括/bin /dev/ /etc /lib /proc /sbin /usr都是不可或缺的。极端的情况下,你可以省略/proc /sys,以及将内核的配置设定成不支持相应的虚拟文件系统。
/usr /var 这两个顶层目录,与根目录非常像,接下来讲述他们令人困惑的相似性:
根文件系统用于存放二进制文件的目录主要有四个: /bin /sbin /usr/bin /usr/sbin。如果是与用户和系统管理员必备的二进制文件,就放/bin,如果只是系统管理员必备,但是一般用户用不到,就放/sbin 。相对而言,不是用户必备的二进制文件多半会放在/usr/bin,不是系统管理员必备的工具多半会放在/usr/sbin。
1,Couldn't read row 1, col 1 from CursorWindow
java.lang.IllegalStateException: Couldn't read row 1, col 1 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
原因:查询字段与数据库的字段不一致(严格区分大小写)导致不能读取到。,
2,启动Activity用startActivityForResult 不能回调onActivityResult()
http://www.eoeandroid.com/thread-43479-1-1.html
启动代码如下:
代码是这样写的
我AndroidManifest.xml这个activity定义是弹出来的
<activity android:name="com.demo.InsertActivity" android:theme="@android:style/Theme.Dialog" android:launchMode="singleInstance"></activity>
红色部分是我加的属性 我把android:launchMode="singleInstance"属性去掉就能回调,加上就不行
我加上android:launchMode="singleInstance" 我是想不管点击这个按钮多少次 都只会弹出一个InsertActivity
如果不用属性android:launchMode="singleInstance"还有什么好的方法呢??除开 那种开关试的按钮存在
或者解决加上android:launchMode="singleInstance" 让他回调onActivityResult()??
注:android:launchMode="singleTask" 不行 他会启动之前就调用onActivityResult