当前位置:  编程技术>移动开发
本页文章导读:
    ▪miui滑动开关的移栽        miui滑动开关的移植 miui的设置界面中有一个比较好看的控件,即滑动开关(sliding button),而CM系列则是单调的选择框(checkingbox),今天我们要做的就是将其移植到CM系列的系统中。   1.framework-res..........
    ▪ [转]Objective-C 对 URL 进展 URLEncode 编码        [转]Objective-C 对 URL 进行 URLEncode 编码 在 iOS 程序访问 HTTP 资源时需要对 URL 进行 Encode,比如像拼出来的 http://unmi.cc?p1=%+&sd f&p2=中文,其中的中文、特殊符号&%和空格都必须进行转.........
    ▪ 各种资料的注释       各种文件的注释 <%-- comment --%> JSP注释,也称为“隐藏注释”。JSP引擎将忽略它。标记内的所有JSP脚本元素、指令和动作都将不起作用。 <!-- comment --> HTML注释,也称为“输出的注释”.........

[1]miui滑动开关的移栽
    来源: 互联网  发布时间: 2014-02-18
miui滑动开关的移植

miui的设置界面中有一个比较好看的控件,即滑动开关(sliding button),而CM系列则是单调的选择框(checkingbox),今天我们要做的就是将其移植到CM系列的系统中。

 

1.framework-res.apk的修改

    因为slidingbutton有用到几张图片,所以需要放入framework-res.apk中,将附件的slidingbutton-res.zip中的资源添加到你的framework-res中,记下各图片相应的id号。

 

2.framework.jar的修改

    1.1.反编译/system/framework/framework.jar文件。

    1.2.将附件中SlidingButton.rar中的文件全部放进反编译得到的文件夹中的/android/widget中。

    1.3.打开刚才添加的文件查找资源id,一般查找0x10得到的9位号码即使资源id,然后对应你在第一步中添加的资源id进行修改,对应关系请参照miui中的对应关系,或者等我有空把所有文件中需要修改的地方标记出来。

    1.3.回编译该文件夹为classes.dex,拖入framework.jar包中,至此framework.jar修改完成

3.framework-res.apk文件的修改

    2.1.使用apktool将framework-res.apk反编译,修改\res\layout中的preference_widget_checkbox.xml文件,将如下代码进行修改

    原代码为:

 

<?xml version="1.0" encoding="utf-8"?>
<CheckBox android:layout_gravity="center_vertical" android:id="@id/checkbox" android:focusable="false" android:clickable="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="4.0dip"
  xmlns:android="http://schemas.android.com/apk/res/android" />
 

    更改后的代码是:

 

 

<?xml version="1.0" encoding="utf-8"?>
<SlidingButton android:layout_gravity="center_vertical" android:id="@id/checkbox" android:focusable="false" android:clickable="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="4.0dip"
  xmlns:android="http://schemas.android.com/apk/res/android" />

    
[2] [转]Objective-C 对 URL 进展 URLEncode 编码
    来源: 互联网  发布时间: 2014-02-18
[转]Objective-C 对 URL 进行 URLEncode 编码
在 iOS 程序访问 HTTP 资源时需要对 URL 进行 Encode,比如像拼出来的 http://unmi.cc?p1=%+&sd f&p2=中文,其中的中文、特殊符号&%和空格都必须进行转译才能正确访问。

在 Java、.net 和 JS 中都有相应的 encodeURL 方法可用,在 Objective-C 语言中,你可以试下

- (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncoding)enc;

来对完整的 URL(/blog_article/带请求参数的/index.html)进行编码,比如执行下面的代码:

NSString *url=@"http://unmi.cc?p1=%+&sd &p2=中文";
NSString *encodedValue = [url stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
上面代码转换出的 encodedValue 是:

http://unmi.cc?p1=%25+&sd%20&p2=%E4%B8%AD%E6%96%87

可见,它不会转换 URL 中的 ?%& 符号,这也正常,因为它肯定分不出哪个 & 是参数的连接符号还是参数值,你可以单独编码参数,然后在拼接成 URL 之前把属性参数值中的 ?%& 等符号分别替换成相应的编码。

或者,您还可以试下另外一个方法来单独编码参数值,然后拼接成完整的 URL:

/* newString = CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, origString, NULL, NULL, kCFStringEncodingUTF8); */
CF_EXPORT
CFStringRef CFURLCreateStringByAddingPercentEscapes(CFAllocatorRef allocator, CFStringRef originalString, CFStringRef charactersToLeaveUnescaped, CFStringRef legalURLCharactersToBeEscaped, CFStringEncoding encoding);

参考代码,分别编码前面的 p1=%+&sd f&p2=中文,两个参数的代码和结果如下:

NSString *param = @"%+&sd f";
    NSString *encodedValue = (NSString*)CFURLCreateStringByAddingPercentEscapes(nil,
                                   (CFStringRef)param, nil,
                                (CFStringRef)@"!*'();:@&=+$,/?%#[]", kCFStringEncodingUTF8);
这样编码出来的 encodedValue 为 %25%2B%26sd%20f,对 ?%& 等符号也会编码的。用上面的代码对 “中文” 进行编码的结果是:%E4%B8%AD%E6%96%87,与前面是一致的。

我实际应用时还是这个 CFURLCreateStringByAddingPercentEscapes 方法比较方便。

我们在项目中是使用的 ASIHTTPRequest 组件来访问 URL 的,在使用 ASIFormDataRequest 时发出它其中有一个方法:

- (NSString*)encodeURL:(NSString *)string
{
    NSString *newString = NSMakeCollectable([(NSString *)CFURLCreateStringByAddingPercentEscapes(
                                                              kCFAllocatorDefault,
                                  (CFStringRef)string, NULL, CFSTR(":/?#[]@!$ &'()*+,;=\"<>%{}|\\^~`"),
                        CFStringConvertNSStringEncodingToEncoding([self stringEncoding])) autorelease]);
    if (newString) {
        return newString;
    }
    return @"";
}
看起来它就是个 Objective-C 版的 encodeURL 方法,可是它声明成了一个实例方法,必须构造出 ASIFormDataRequest 实例才能使用它,在它的父类 ASIHTTPRequest 中都无该方法。现在来试验一下这个方法的返回值:

ASIFormDataRequest *formDataRequest = [ASIFormDataRequest requestWithURL:nil];
NSString *encodedValue1 = [formDataRequest encodeURL:@"%+&sd f"];
NSString *encodedValue2 = [formDataRequest encodeURL:@"中文"];
得出的 encodedValue1 和 encodedValue2 分别是 %25%2B%26sd%20f 和 %E4%B8%AD%E6%96%87,和前面是一致的,所以你可以用 ASIFormDataRequest 提供的方式来进行 URLEncode,把这个方法提出为一个工具方法即可。


摘自:http://unmi.cc/objective-c-urlencode

    
[3] 各种资料的注释
    来源: 互联网  发布时间: 2014-02-18
各种文件的注释
<%-- comment --%> JSP注释,也称为“隐藏注释”。JSP引擎将忽略它。标记内的所有JSP脚本元素、指令和动作都将不起作用。

<!-- comment --> HTML注释,也称为“输出的注释”,直接出现在结果HTML文档中。标记内的所有JSP脚本元素、指令和动作正常执行。 同时也是xml中的注释。

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