当前位置:  编程技术>移动开发
本页文章导读:
    ▪[拾掇]Selector、shape详解        [整理]Selector、shape详解 Selector、shape详解(一) Selector的结构描述: <?xml version="1.0" encoding="utf-8"?>     <selector xmlns:android="http://schemas.android.com/apk/res/android" >         <item     .........
    ▪ 解决了google键盘存在触摸识别误差有关问题        解决了google键盘存在触摸识别误差问题 解决了google键盘存在触摸识别误差问题 触摸一个键的顶部区域,却等效按下了改键上方的键。该输入法目录下SkbContainer.java文件中     * For finger touch,.........
    ▪ 设立UINavigationBar的leftBarButtonItem和rightBarButtonItem       设置UINavigationBar的leftBarButtonItem和rightBarButtonItem navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 40)]; [self.view addSubview:navBar]; navBar.barStyle = UIBarStyleDefault; [navBar releas.........

[1][拾掇]Selector、shape详解
    来源: 互联网  发布时间: 2014-02-18
[整理]Selector、shape详解

Selector、shape详解(一)

Selector的结构描述:

<?xml version="1.0" encoding="utf-8"?>

    <selector xmlns:android="http://schemas.android.com/apk/res/android" >

        <item

            android:color="hex_color"

            android:state_pressed="true/false"

 “true”表示按下状态使用(例如按钮按下);“false”表示非按下状态使用。

            android:state_focused="true/false"

“true”表示聚焦状态使用(例如使用滚动球/D-pad聚焦Button);“false”表示非聚焦状态使用。

            android:state_selected="true/false"

“true”表示选中状态使用(例如Tab打开);“false”表示非选中状态使用。

            android:state_active="true/false"

“true”表示可勾选状态时使用;“false”表示非可勾选状态使用。(只对能切换可勾选—非可勾选的构件有用。)

            android:state_checkable="true/false"

 “true”表示勾选状态使用;“false”表示非勾选状态使用。

            android:state_checked="true/false"

true”表示勾选状态使用;“false”表示非勾选状态使用。

            android:state_enabled="true/false"

“true”表示可用状态使用(能接收触摸/点击事件);“false”表示不可用状态使用。

            android:state_window_focused="true/false"

“true”表示应用程序窗口有焦点时使用(应用程序在前台);“false”表示无焦点时使用(例如Notification栏拉下或对话框显示)。

/>

    </selector>

 

 

shape的结构描述:

 <shape>  

    <!-- 实心 -->  

    <solid android:color="#ff9d77"/>  

    <!-- 渐变 -->  

    <gradient  

        android:startColor="#ff8c00"  <!—开始颜色 -->  

        android:endColor="#FFFFFF"  <!—结束颜色 -->  

        android:angle="270" />  

    <!-- 描边 -->  

    <stroke  

        android:width="2dp"  

        android:color="#dcdcdc" />  

    <!-- 圆角 -->  

    <corners  

        android:radius="2dp" />  

    <padding  

        android:left="10dp"  

        android:top="10dp"  

        android:right="10dp"  

        android:bottom="10dp" />  

</shape>  

 

下面是上面属性的说明

solid:实心,就是填充的意思

android:color指定填充的颜色

 

gradient:渐变

android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。

另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

 

stroke:描边

android:width="2dp" 描边的宽度,android:color 描边的颜色。

我们还可以把描边弄成虚线的形式,设置方式为:

android:dashWidth="5dp"

 

android:dashGap="3dp"

其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。

 

corners:圆角

android:radius为角的弧度,值越大角越圆。

我们还可以把四个角设定成不同的角度,方法为:

<corners  

        android:topRightRadius="20dp"    右上角  

        android:bottomLeftRadius="20dp"    右下角  

        android:topLeftRadius="1dp"    左上角  

        android:bottomRightRadius="0dp"    左下角  

/>  

 

这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个有点郁闷,不过不影响使用,记得别搞错了就行。

还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。

 

padding:间隔

这个就不用多说了,XML布局文件中经常用到。 

 

具体代码如下:

 

main.xml:  

<Button  

    android:layout_width="wrap_content"  

    android:layout_height="wrap_content"  

    android:text="TestShapeButton"  

    android:background="@drawable/button_selector"  

    />  

>  

 

button_selector.xml:

<?xml version="1.0" encoding="utf-8"?>  

<selector  

    xmlns:android="http://schemas.android.com/apk/res/android">  

    <item android:state_pressed="true" >  

        <shape>  

            <!-- 渐变 -->  

            <gradient  

                android:startColor="#ff8c00"  

                android:endColor="#FFFFFF"  

                android:type="radial"  

                android:gradientRadius="50" />  

            <!-- 描边 -->  

            <stroke  

                android:width="2dp"  

                android:color="#dcdcdc"  

                android:dashWidth="5dp"  

                android:dashGap="3dp" />  

            <!-- 圆角 -->  

            <corners  

                android:radius="2dp" />  

            <padding  

                android:left="10dp"  

                android:top="10dp"  

                android:right="10dp"  

                android:bottom="10dp" />  

        </shape>  

    </item>  

    <item android:state_focused="true" >  

        <shape>  

            <gradient  

                android:startColor="#ffc2b7"  

                android:endColor="#ffc2b7"  

                android:angle="270" />  

            <stroke  

                android:width="2dp"  

                android:color="#dcdcdc" />  

            <corners  

                android:radius="2dp" />  

            <padding  

                android:left="10dp"  

                android:top="10dp"  

                android:right="10dp"  

                android:bottom="10dp" />  

        </shape>  

    </item>  

    <item>        

        <shape>  

            <solid android:color="#ff9d77"/>  

            <stroke  

                android:width="2dp"  

                android:color="#fad3cf" />  

            <corners  

                android:topRightRadius="5dp"  

                android:bottomLeftRadius="5dp"  

                android:topLeftRadius="0dp"  

                android:bottomRightRadius="0dp"  

            />  

            <padding  

                android:left="10dp"  

                android:top="10dp"  

                android:right="10dp"  

                android:bottom="10dp" />  

        </shape>  

    </item>  

</selector>  

 

源码来自:http://sunxin1001.iteye.com/blog/890175

http://xiaozu.renren.com/xiaozu/102718/333508779

 


    
[2] 解决了google键盘存在触摸识别误差有关问题
    来源: 互联网  发布时间: 2014-02-18
解决了google键盘存在触摸识别误差问题

解决了google键盘存在触摸识别误差问题

触摸一个键的顶部区域,却等效按下了改键上方的键。
该输入法目录下SkbContainer.java文件中     * For finger touch, user tends to press the bottom part of the target key,
     * or he/she even presses the area out of it, so it is necessary to make a
     * simple bias correction. If the input method runs on emulator, no bias
     * correction will be used.
     */
    private static final int Y_BIAS_CORRECTION = -10;
是为了让触摸时按键操作和视觉上的统一,所以设Y_BIAS_CORRECTION = -10,因为我们机器屏幕较大,做这种处理后反而变成了触摸误差,故Y轴校正可不要,改Y_BIAS_CORRECTION = 0解决。


    
[3] 设立UINavigationBar的leftBarButtonItem和rightBarButtonItem
    来源: 互联网  发布时间: 2014-02-18
设置UINavigationBar的leftBarButtonItem和rightBarButtonItem

	navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0,  0, self.view.frame.size.width, 40)];
	[self.view addSubview:navBar];
	navBar.barStyle = UIBarStyleDefault;
	[navBar release];
	
	UIBarButtonItem* cancelBtnItem = [[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStylePlain
																 target:self action:@selector(cancelBtnPress)];
	UIBarButtonItem* sureBtnItem = [[UIBarButtonItem alloc] initWithTitle:@"确定" style:UIBarButtonItemStyleDone 
															   target:self action:@selector(sureBtnPress)];
	UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:@"设置经度"];
	navItem.leftBarButtonItem = cancelBtnItem;
	navItem.rightBarButtonItem = sureBtnItem;
	navItem.hidesBackButton  = YES;
	[cancelBtnItem release];
	[sureBtnItem release];
	
	[navBar pushNavigationItem:navItem animated:NO];
	[navItem release];
 

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