当前位置:  编程技术>移动开发
本页文章导读:
    ▪相关图片处理的一些片段        有关图片处理的一些片段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 .........
    ▪ 根文件系统各中上层目录重要性及令人困惑的相似性        根文件系统各顶层目录重要性及令人困惑的相似性如果你使用linux进行日常工作,你应该已经熟悉其中一些目录。不过,现在进一步检查,在嵌入式linux系统中,要如何使用一个典型根文件系.........
    ▪ bug总结       bug小结  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. 原因:查询字段与数据.........

[1]相关图片处理的一些片段
    来源: 互联网  发布时间: 2014-02-18
有关图片处理的一些片段

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)
	}
}

未完待续...

    



    
[2] 根文件系统各中上层目录重要性及令人困惑的相似性
    来源: 互联网  发布时间: 2014-02-18
根文件系统各顶层目录重要性及令人困惑的相似性

如果你使用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。


    
[3] bug总结
    来源: 互联网  发布时间: 2014-02-18
bug小结

 

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

 

我点击按钮启动一个界面 再回调
启动代码如下:


  • Intent intent = new Intent();
  • intent.setClass(this,InsertActivity.class);
  • this.startActivityForResult(intent, 0);

  • 复制代码
    InsertActivity 返回代码如下


  • Intent intent = getIntent();
  • Bundle bd = new Bundle();
  • bd.putSerializable("VO", vo);
  • intent.putExtras(bd);
  • this.setResult(2, intent);
  • this.finish();
  • 复制代码
    回调方法:

  • protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  •                 switch (resultCode) {
  •                
  •                 case 2:
  •                         System.out.println("进来了");
  •                         break;

  •                 default:
  •                         Toast.makeText(NewTaskListSurveyInputSecondInfoActivity.this,
  •                                         "默认了", Toast.LENGTH_LONG).show();
  •                         break;
  •                 }
  •         }

  • 复制代码

    代码是这样写的
    我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


        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    建站其它 iis7站长之家
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3