当前位置:  ▪Android按钮单击事件的四种常用写法总结 iis7站长之家
本页文章导读:
    ▪MIniGui 内存DC绘图      内存 DC 和 BitBlt     新的 GDI 函数增强了内存 DC 操作函数。GDI 函数在建立内存 DC 时,将调用 GAL 的相应接口。如前所述,GAL 将.........
    ▪Google Map Android v2开发: 安装运行Google Map Android v2 示例程序      V2 版本有几个注意事项: 只能运行在Android2.2以及以上版本的设备上 不能运行在模拟器中   在开发环境中安装Goole Play service SDK. (参考: http://developer.android.com/google/play-servic.........
    ▪Failed to install ***.apk on device '019417a3': Unable to open sync connection!解决方法      最近开发,兄弟们问我这个问题,写出来解决方法和大家分享一下。 当控制台出现: Failed to install ***.apk on device '019417a3': Unable to open sync connection! java.io.IOException: Unable to open sync connection! Launch.........

[1]MIniGui 内存DC绘图
    来源: 互联网  发布时间: 2013-11-15

内存 DC 和 BitBlt
    新的 GDI 函数增强了内存 DC 操作函数。GDI 函数在建立内存 DC 时,将调用 GAL 的相应接口。如前所述,GAL 将尽量把内存 DC 建立在显示卡的显示内存当中。这样,可以充分利用显示卡的硬件加速功能,实现显示内存中两个不同区域之间位块的快速移动、复制等等,包括透明处理和 Alpha 混和。应用程序可以建立一个具有逐点 Alpha 特性的内存 DC(每个点具有不同的 Alpha 值),也可以通过 SetMemDCAlpha 设置内存 DC 所有象素的 Alpha 值(或者称为"Alpha 通道"),然后利用 BitBlt 和 StretchBlt 函数实现 DC 之间的位块传送。应用程序还可以通过 SetMemDCColorKey 函数设置源 DC 的透明色,从而在进行 BitBlt 时跳过这些透明色。 

有关内存 DC 的 GDI 函数有(include/gdi.h): 

#define MEMDC_FLAG_NONE         0x00000000          /* None. */
#define MEMDC_FLAG_SWSURFACE    0x00000000          /* DC is in system memory */
#define MEMDC_FLAG_HWSURFACE    0x00000001          /* DC is in video memory */
#define MEMDC_FLAG_SRCCOLORKEY  0x00001000          /* Blit uses a source color key */
#define MEMDC_FLAG_SRCALPHA     0x00010000          /* Blit uses source alpha blending */
#define MEMDC_FLAG_RLEACCEL     0x00004000          /* Surface is RLE encoded */ 

HDC GUIAPI CreateCompatibleDC (HDC hdc);
HDC GUIAPI CreateMemDC (int width, int height, int depth, DWORD flags,
                Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
BOOL GUIAPI ConvertMemDC (HDC mem_dc, HDC ref_dc, DWORD flags);
BOOL GUIAPI SetMemDCAlpha (HDC mem_dc, DWORD flags, Uint8 alpha);
BOOL GUIAPI SetMemDCColorKey (HDC mem_dc, DWORD flags, Uint32 color_key);
void GUIAPI DeleteMemDC (HDC mem_dc); 

    CreateCompatibleDC 函数创建一个和给定 DC 兼容的内存 DC。兼容的含义是指,新创建的内存 DC 的象素格式、宽度和高度与给定 DC 是相同的。利用这种方式建立的内存 DC 可以快速 Blit 到与之兼容的 DC 上。 

    这里需要对象素格式做进一步解释。象素格式包含了颜色深度(即每象素点的二进制位数)、调色板或者象素点中 RGBA(红、绿、蓝、Alpha)四个分量的组成方式。其中的 Alpha 分量,可以理解为一个象素点的透明度,0 表示完全透明,255 表示完全不透明。在 MiniGUI 中,如果颜色深度低于 8,则 GAL 会默认创建一个调色板,并且可以调用 SetPalette 函数修改调色板。如果颜色深度高于 8,则通过四个变量分别指定象素点中 RGBA 分量所占的位。如果是建立兼容 DC,则兼容内存 DC 和给定 DC 具有一样的颜色深度,同时具有一样的调色板或者一样的 RGBA 分量组成方式。 

    如果调用 CreateMemDC 函数,则可以指定新建内存 DC 的高度、宽度、颜色深度,以及必要的 RGBA 组成方式。在 MiniGUI 中,是通过各自在象素点中所占用的位掩码来表示 RGBA 四个分量的组成方式的。比如,如果要创建一个包含逐点 Alpha 信息的16 位内存 DC,则可以用每分量四个二进制位的方式分配 16 位的象素值,这样,RGBA 四个分量的掩码分别为:0x0000F000, 0x00000F00, 0x000000F0, 0x0000000F。 

    ConvertMemDC 函数用来将一个任意的内存 DC 对象,根据给定的参考 DC 的象素格式进行转换,使得结果 DC 具有和参考 DC 一样的象素格式。这样,转换后的 DC 就能够快速 Blit 到与之兼容的 DC 上。 

    SetMemDCAlpha 函数用来设定或者取消整个内存 DC 对象的 Alpha 通道值。我们还可以通过 MEMDC_FLAG_RLEACCEL 标志指定内存 DC 采用或者取消 RLE 编码方式。Alpha 通道值将作用在 DC 的所有象素点上。 

    SetMemDCColorKey 函数用来设定或者取消整个内存 DC 对象的 ColorKey,即透明象素值。我们还可以通过 MEMDC_FLAG_RLEACCEL 标志指定内存 DC 采用或者取消 RLE 编码方式。 

    内存 DC 和其他 DC 一样,也可以调用 GDI 的绘图函数向内存 DC 中进行任意的绘图输出,然后再 BitBlt 到其他 DC 中。下面的程序段演示了如何使用内存 DC 向窗口 DC 进行透明和 Alpha 混和的 Blitting 操作: 

  /*&

    
[2]Google Map Android v2开发: 安装运行Google Map Android v2 示例程序
    来源:    发布时间: 2013-11-15

V2 版本有几个注意事项:

  • 只能运行在Android2.2以及以上版本的设备上
  • 不能运行在模拟器中

 

  • 在开发环境中安装Goole Play service SDK.

(参考: http://developer.android.com/google/play-services/setup.html)

  • 在Eclipse中打开 Windows>Android SDK Manager
     
  • 滚动条滚动到最下面,选择 Extra>Google Play services, 然后安装.
     
    下载后的Google Play services SDK 保存在<android-sdk-folder>/extras/google/google_play_services/.
  • 复制<android-sdk-folder>/extras/google/google_play_services/libproject/google-play-services_lib到任何地方.我这里是复制到D:\code. 然后再eclipse中选择 File > Import, Android > Existing Android Code into Workspace. (注意: 这里是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 否则是无法导入的.)
  • 导入示例程序.
    为了不破坏SDK中的程序的原样,我们先把示例程序复制一份出来.
    复制<android-sdk-folder>/extras/google/google_play_services/samples/maps到D:\code 下.
    然后选择File > Import, Android > Existing Android Code into Workspace,把此程序导入到Eclipse中.(注意: 这里是 Android > Existing Android Code into Workspace, 而不是General > Existing Projects into Workspace, 否则会出现大量错误.)
     
    这个工程导入后可能会出现很多问题,请尝试使用以下方法解决:
        1. 在此工程上点击右键,选择Properties>Android, 在右下方的Library选项中如果出现红叉,先把它删除,然后点击添加按钮,把前面导入的google-play-services_lib工程加进来
        2. 另一个问题就是android.support找不到,这个是缺少android-support-v4.jar,可以通过在工程上点击右键,选择Android Tools > Add Support Library, 会从网络上下载.如果网络下载有问题,也可以在工程中新建目录libs,然后把此文件从<android-sdk-folder>\extras\android\compatibility\v4\android-support-v4.jar复制到新建目录一个就可以了.
    • 获得Goole Maps API Key
      (参考: https://developers.google.com/maps/documentation/android/start#the_google_maps_api_key
             http://developer.android.com/tools/publishing/app-signing.html)

    获得Google Maps API Key 在V2版本中需要如下几个步骤:

  • 查看程序签名的SHA1认证指纹.
    在开发模式下,默认会使用C:\Users\<你的用户名称>\.android\debug.keystore这个自动生成的debug状态的签名文件,可以通过Windows>Preferences>Android中的Default debug keystore进行查看.
    接下来进入你的系统的命令行控制台中,切换到你安装的JDK的bin目录中输入keytool -v -list -keystore C:\Users\<你的用户名称>\.android\debug.keystore,密码是android,查看"证书指纹"中的SHA1中的内容,这个内容记下来,接下来会使用到.

  • 创建Google Maps API Key.
    访问Google APIs Console(https://code.google.com/apis/console).如果没有登录,就先登录.登录后,如果是首次使用,会出现让你创建API工程的页面.

    点击Create project后会跳转到services页面,需要在这个页面选择你要使用的API.这里我们选择Google Maps Android API v2.

    之后会跳转到服务条款确认的页面,接受后,在显示的页面中左边列表选择”API Access”,然后点击Create new Android key... 按钮.

    在弹出的对话框中填写SHA1认证指纹和程序的包命,中间用分号分隔(google自带的google map v2示例程序的包命是com.example.mapdemo):
    0E:10:94:C7:B9:FD:15:62:27:FC:E7:FC:0C:05:59:A7:18:41:F5:B2;com.example.mapdemo
    点击create按钮后,就创建了一个新的API key:

        
  • [3]Failed to install ***.apk on device '019417a3': Unable to open sync connection!解决方法
        来源: 互联网  发布时间: 2013-11-15
    最近开发,兄弟们问我这个问题,写出来解决方法和大家分享一下。
    当控制台出现:

    Failed to install ***.apk on device '019417a3': Unable to open sync connection!

    java.io.IOException: Unable to open sync connection!

    Launch canceled!

    或者

    Uploading ****.apk onto device '1000b1eda2c2'

    Failed to install ****.apk on device '1000b1eda2c2': adb rejected install command with: device offline
    com.android.ddmlib.AdbCommandRejectedException: device offline

    Launch canceled!

    解决方法:

    第一种:重启电脑,之后把手机查到电脑上,启动eclipse
    第二种:手机-设置-应用程序-开发-usb调试打开再关闭一次
    第三种:安装豌豆夹或者360手机精灵在电脑上,用他们连接手机,安装驱动。
    第四种:在cmd下Try "adb kill-server" and then "adb start-server"
    作者:fuxiaohui 发表于2013-1-3 23:23:12 原文链接
    阅读:0 评论:0 查看评论

        
    最新技术文章:
    ▪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