当前位置:  编程技术>移动开发
本页文章导读:
    ▪对Canvas跟Matrix的理解        对Canvas和Matrix的理解         不了解Matrix的同学看这里:http://ipjmc.iteye.com/blog/1275366        弄明白matrix那几个方法的使用了,比如preTranslate, setTranslate, postTranslate这些。以前对它们都是.........
    ▪ Bit地图.Config上的几个图片质量参数        Bitmap.Config下的几个图片质量参数 转自:http://www.cnblogs.com/coding-way/archive/2011/07/26/2117522.htmlBitmap.Config ALPHA_8   Bitmap.Config ARGB_4444   Bitmap.Config ARGB_8888   Bitmap.Config RGB_565    A       R .........
    ▪ NDK编译.so疏失       NDK编译.so出错 http://hi.baidu.com/wind_liao/blog/item/f61f7fc06f4215b78226ac55.html ......

[1]对Canvas跟Matrix的理解
    来源: 互联网  发布时间: 2014-02-18
对Canvas和Matrix的理解

        不了解Matrix的同学看这里:http://ipjmc.iteye.com/blog/1275366
        弄明白matrix那几个方法的使用了,比如preTranslate, setTranslate, postTranslate这些。以前对它们都是一知半解,以为这几个方法没什么区别,其实还是有很大不同的,最紧要是这几个方法的调用顺序对坐标变换的影响。抽象的说pre方法是向前"生长", post方法是向后"生长",具体拿个例子来说,比如一个matrix调用了下列一系列的方法:
    matrix.preScale(0.5f, 1);
    matrix.preTranslate(10, 0);
    matrix.postScale(0.7f, 1);  
    matrix.postTranslate(15, 0); 

    则坐标变换经过的4个变换过程依次是:
translate(10, 0) -> scale(0.5f, 1) -> scale(0.7f, 1) -> translate(15, 0)

        所以对matrix方法的调用顺序是很重要的,不同的顺序往往会产生不同的变换效果。pre方法的调用顺序和post方法的互不影响,即以下的方法调用和前者在真实坐标变换顺序里是一致的
    matrix.postScale(0.7f, 1); 
    matrix.preScale(0.5f, 1);  
    matrix.preTranslate(10, 0); 
    matrix.postTranslate(15, 0);


        而matrix的set方法则会对先前的pre和post操作进行刷除,而后再设置它的值,比如下列的方法调用:
    matrix.preScale(0.5f, 1); 
    matrix.postTranslate(10, 0);
    matrix.setScale(1, 0.6f);
    matrix.postScale(0.7f, 1);
    matrix.preTranslate(15, 0); 


        其坐标变换顺序是:translate(15, 0) -> scale(1, 0.6f) ->  scale(0.7f, 1).

        这是因为setScale重新设置了矩阵的值,之前的两个变换是无效的了,所以最终的显示效果只有三个变换效果。

        Canvas里scale, translate, rotate, concat方法都是pre方法,如果要进行更多的变换可以先从canvas获得matrix, 变换后再设置回canvas.

转自:http://longshuai2007.blog.163.com/blog/static/14209441420117521823875/

    
[2] Bit地图.Config上的几个图片质量参数
    来源: 互联网  发布时间: 2014-02-18
Bitmap.Config下的几个图片质量参数
转自:http://www.cnblogs.com/coding-way/archive/2011/07/26/2117522.html


Bitmap.Config ALPHA_8  

Bitmap.Config ARGB_4444  

Bitmap.Config ARGB_8888  

Bitmap.Config RGB_565    

A       R  G  B

透明度 红色 绿色 蓝色

Bitmap.Config ARGB_4444 16 每个像素 占四位  

Bitmap.Config ARGB_8888 32 每个像素 占八位

Bitmap.Config RGB_565 16 R占5位 G占6位 B占5位 没有透明度(A)

使用示例:
Bitmap.createBitmap(width, height, Bitmap.Config.ALPHA_8);
Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_4444);
Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);



上面四个函数返回一个可改变的Bitmap对象。
    假如我们使用Bitmap.Config.ARGB_8888
protected void onDraw(Canvas canvas) {
    Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(b);
    //c.draw...(),通过c可以改变bitmap
    canvas.draw(bitmap, null, null);//最后在把bitmap画到canvas上
    super.onDraw(canvas);
}



参见:
http://developer.android.com/reference/android/graphics/Bitmap.html#createBitmap(int, int, android.graphics.Bitmap.Config)一般情况下我们都是用argb888 但是无可厚非 它也相对的很占内存因为一个像素32位 8位一个字节 如果是800*480的图片的话自己算 估计有1M多了

1 楼 yahier 2012-02-22  
  感谢分享

    
[3] NDK编译.so疏失
    来源: 互联网  发布时间: 2014-02-18
NDK编译.so出错

http://hi.baidu.com/wind_liao/blog/item/f61f7fc06f4215b78226ac55.html


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪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