当前位置:  编程技术>移动开发
本页文章导读:
    ▪真机下保持字体以及图片等资源的一致性欢迎跟帖        真机上保持字体以及图片等资源的一致性欢迎跟帖 <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:anyDensity="true" android:resizeable="true" /> layout .........
    ▪ Java中利用package机制兑现条件编译        Java中利用package机制实现条件编译 Java中并没有C语言里的“条件编译”特性。这种特性在C语言里是用来解决代码的跨平台问题的,可以通过让代码的不同部分根据其运行的具体平台进行编.........
    ▪ setDefaultKeyMode 用法引见       setDefaultKeyMode 用法介绍 转载:http://blog.csdn.net/silenceburn/archive/2010/12/11/6069645.aspxsetDefaultKeyMode (int mode) 用来设置一个Activity的默认的按键模式,也就是指这种情况,当Activity中发生了一些按.........

[1]真机下保持字体以及图片等资源的一致性欢迎跟帖
    来源: 互联网  发布时间: 2014-02-18
真机上保持字体以及图片等资源的一致性欢迎跟帖
<supports-screens android:largeScreens="true" 
    android:normalScreens="true" android:smallScreens="true" 
    android:anyDensity="true" android:resizeable="true" /> 
layout 一直用  dip  作单位
 


    
[2] Java中利用package机制兑现条件编译
    来源: 互联网  发布时间: 2014-02-18
Java中利用package机制实现条件编译
Java中并没有C语言里的“条件编译”特性。这种特性在C语言里是用来解决代码的跨平台问题的,可以通过让代码的不同部分根据其运行的具体平台进行编译。由于Java本身就设计为一种跨平台的语言,因此这种特性就没有存在的必要了。

但是条件编译对于代码的调试来说还是很有用处的。就像我们在C语言中学到的一样,可以通过一些条件编译的开关来使得一些调试代码只在开发过程中使用,而在发布的版本中则不会编译进去。

我们可以利用Java的package来模仿条件编译的概念,从而可以用于java代码的调试开发。

代码如下所示:
package com.vista.debug

public class Assert
{
    private static void printErr(String msg)
    {
        System.err.println(msg);
    }
    public final static void isTrue(boolean exp)
    {
        if (!exp) printErr("Assertion failed");
    }
    public final static void isFalse(boolean exp)
    {
        if (exp) printErr("Assertion failed");
    }
    public final static void isTrue(boolean exp,String msg)
    {
        if (!exp) printErr("Assertion failed" + msg);
    }
    public final static void isFalse(boolean exp,String msg)
    {
        if (!exp) printErr("Assertion failed" + msg);
    }
}




如果想在我们的代码中使用这个断言类进行调试,只需要引入下述package:
import com.vista.debug.*;


当我们准备编译发行版本时就需要清除掉原来引入的断言机制,为此我们只需要在了一个不同的package中创建一个同样名为Assert的类,代码如下:
package com.vista.release

public class Assert
{
    private static void printErr(String msg){}
    public final static void isTrue(boolean exp){}
    public final static void isFalse(boolean exp){}
    public final static void isTrue(boolean exp,String msg){}
    public final static void isFalse(boolean exp,String msg){}
}


再将前面的import语句修改如下:
import com.vista.release.*;


这样断言机制就从我们的代码中去除掉了。

    
[3] setDefaultKeyMode 用法引见
    来源: 互联网  发布时间: 2014-02-18
setDefaultKeyMode 用法介绍
转载:http://blog.csdn.net/silenceburn/archive/2010/12/11/6069645.aspx

setDefaultKeyMode (int mode) 用来设置一个Activity的默认的按键模式,

也就是指这种情况,当Activity中发生了一些按键事件,但是这些事件没有被任何控件Listen到时(截获时),

系统应该如何处理这些按键事件。

mode一共有五种

DEFAULT_KEYS_DISABLE
DEFAULT_KEYS_DIALER
DEFAULT_KEYS_SHORTCUT
DEFAULT_KEYS_SEARCH_LOCAL
DEFAULT_KEYS_SEARCH_GLOBAL
first of all,首先要告诉大家一个不幸的消息,上述的默认键动作完全不支持中文。

也就是说如果处于中文输入状态,那么按键都会被理解为试图输入中文,而当输入完成后产生的中文,也不会进行默认按键处理。

所以在我下面的例子中,如果必要,我会呼出软键盘把输入模式改为英文。

以下分别解释

DEFAULT_KEYS_DISABLE

直接丢弃,这种情况你把键盘按穿了也不会有系统理你

 

DEFAULT_KEYS_DIALER

将键盘事件传入拨号器进行处理,例如如下代码:
package com.silenceburn;  
  
import android.app.Activity;  
import android.os.Bundle;  
  
public class DefaultKeyTester extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        setDefaultKeyMode(DEFAULT_KEYS_DIALER);  
    }  
}  


这就是一个最最简单的android工程默认的helloworld模板,

我们只增加了一句话:setDefaultKeyMode(DEFAULT_KEYS_DIALER);

启动这个程序,屏幕上只有一行helloworld,但是我们输入123456,看看会发生什么。

DEFAULT_KEYS_SHORTCUT:

将键盘输入作为当前窗体上注册的快捷键,进行快捷键处理,

举个例子,如果当前菜单项注册了快捷键,则可以在不呼出菜单的情况下,将键盘输入作为菜单快捷键处理

关于此种情况的实现分析和验证例子请看我写的

DEFAULT_KEYS_SHORTCUT 功能的验证 及其 源码实现分析

地址是:http://blog.csdn.net/silenceburn/archive/2010/12/11/6069988.aspx

DEFAULT_KEYS_SEARCH_LOCAL:

将键盘输入作为搜索内容,进行本地搜索,如果本地没有实现自定义搜索,则使用全局搜索

为了验证这种设置,首先注意我们必须实现一个自定义搜索,关于如何实现自定义搜索,请看我写的

android 自定义搜索 的简单实现

地址是:http://blog.csdn.net/silenceburn/archive/2010/12/13/6073581.aspx


其次我们必须保证当前处于英文输入模式,可以通过呼出一个软键盘来改变当前输入模式。

确保上述要求实现后,我们输入任意按键,会发现系统直接呼出我们自定义的搜索界面,如下图所示:






注意这是一个我们自定义的搜索,标题被我改为了My Search (注意这里我没有添加自定义搜索建议栏)

DEFAULT_KEYS_SEARCH_GLOBAL:

将键盘输入作为搜索内容,进行全局搜索

保证当前处于英文输入模式,可以通过呼出一个软键盘来改变当前输入模式。

确保上述要求实现后,我们输入任意按键,会发现系统直接呼出系统的全局搜索界面(也就是google的web搜索),如下图所示:






注意已经没有了My Search字样,而且全局搜索是有搜索建议栏的。(当然自定义搜索也可以实现自定义搜索建议栏)

总结:

Activity提供的默认按键功能其实非常强大,可以把默认按键传入拨号、传入搜索、作为菜单快捷键等等,

在特定的应用场景下,会带来一些非常神奇和良好的用户感受。

但是非常可惜的是,完全不支持中文,因此对于我们中国开发者来讲,其实用性几乎等于零了。

所以导致其资料非常稀少,在我研究这功能的几天里,找遍全网都没找到什么相关的文章。

不过了解其特殊的功能和用法,也许在一些特定的应用场景下,会带来意外的便利呢。

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