android 解决datepicker和timepicker一起用引起的布局样式问题

最近需要用到datepicke和timepicker一起用,但是发现个问题,通过XML布局文件无法跳转大小样式,XML文件内容如下

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <DatePicker
        android:id="@+id/date_picker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:calendarViewShown="false" />

    <TimePicker
        android:id="@+id/time_picker"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical" />

</LinearLayout>


屏幕大的手机能显示全,但是小的就这样了,最后经过查阅资料解决了这个问题,解决方案如下:

/**
	 * 调整FrameLayout大小
	 * @param tp
	 */
	private void resizePikcer(FrameLayout tp){
		List<NumberPicker> npList = findNumberPicker(tp);
		for(NumberPicker np:npList){
			resizeNumberPicker(np);
		}
	}
	
	/**
	 * 得到viewGroup里面的numberpicker组件
	 * @param viewGroup
	 * @return
	 */
	private List<NumberPicker> findNumberPicker(ViewGroup viewGroup){
		List<NumberPicker> npList = new ArrayList<NumberPicker>();
		View child = null;
		if(null != viewGroup){
			for(int i = 0; i < viewGroup.getChildCount(); i++){
				child = viewGroup.getChildAt(i);
				if(child instanceof NumberPicker){
					npList.add((NumberPicker)child);
				}
				else if(child instanceof LinearLayout){
					List<NumberPicker> result = findNumberPicker((ViewGroup)child);
					if(result.size()>0){
						return result;
					}
				}
			}
		}
		return npList;
	}
	
	/*
	 * 调整numberpicker大小
	 */
	private void resizeNumberPicker(NumberPicker np){
		LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(80, LayoutParams.WRAP_CONTENT);
		params.setMargins(10, 0, 10, 0);
		np.setLayoutParams(params);                                                                            
	}

然后这样调用就行了:

 final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker);  
        final TimePicker timePicker = (TimePicker) view.findViewById(R.id.time_picker);
        resizePikcer(datePicker);//调整datepicker大小
		resizePikcer(timePicker);//调整timepicker大小

看下调整后的效果图吧:



是不是很简单呢,文字也可以改变,通过style,例子下载地址如下:

http://download.csdn.net/detail/msn465780/8447723

点击打开链接

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

Android - AndroidManifest节点 - 2015-03-09 14:03:02

AndroidManifest节点 本文地址:http://blog.csdn.net/caroline_wendy AndroidManifest的主要根节点: uses-sdk: 使用SDK版本, 最低SDK版本(minSdkVersion):API的兼容性,防止较低版本使用较高API,根据创建时使用人数,进行选择。 目标SDK版本(targetSdkVersion):设置为最新的版本,同时升级Android SDK Build-tools,最新版本。 注意:已经遗弃,集成入Gradle,设置规则不变
恩布企业IM,免费企业即时通讯,企业内部通讯平台,Android安卓开源手机客户端EntboostIM发布1.2版本,同时服务更新至1.10版本; 安卓端 主要更新内容: 增加漫游消息的功能 修改当程序处于后台运行时,有些消息没有系统通知的问题 修复与离线游客会话时抛出异常的问题 优化我的消息,将只需要提示的一些群消息分离出来,单独区分为系统通知 解决系统通知时,表情显示不正常的问题,将显示表情的描述文字 优化网络异常后重新登录的问题 新增添加增加个人群组管理功能,包括创建个人群组和讨论组;邀请人进群,退
span//判断字符串是否为空func trimString(#str:String)-String{ var nowStr = str.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()) return nowStr}//去除空格和回车func trimLineString(#str:String)-String{ var nowStr = str.stringByTrimmingCharactersInSet(

Android代码混淆指南 - 2015-03-09 11:03:02

请尊重他人的劳动成果,转载请注明出处: 《 Android代码混淆指南 》   本文将和大家分享使用Eclipse+ADT与使用Android Studio进行代码混淆打包的方法。 使用Eclipse+ADT进行代码混淆打包的方法 新版本SDK下进行打包混淆       如果使用新版本的SDK创建的Android项目会在项目的根目录下生成一个proguard-project.txt文件,该文件是默认的混淆规则文件。 混淆打包的步骤: 1.在proguard-project.txt文件中添加混淆的项目规则,
不知不觉,到深圳工作快一个月了,今天公司年会,出去旅游,终于有时间写下博客了,技术贴想写一些有技术含量的,但是不知道为什么工作越来越忙,自己也比较缺钱,做一些APP去赚点钱。  就算去了公司,我也没有觉得有什么大牛,除了我老大除外,我想真正的大牛,可能早就没搞安卓了。 一、应用层 应用层对于一个真正喜欢学习的人来说,能学多久,写个半年,如果你公司不停用框架,可能你的两年,还不如一些自主开发公司一年,自主开发,什么框架都自己写,为什么,因为自主开发的公司,一般会有架构师,架构师什么程度的编程了,你很难想象,
    如图,单一色的vs总会让人烦躁,如果换一个背景的话,肯定会让程序猿更好的coding...    正式切入主题,以vs2013为例。    说明:经过一系列处理,会产生另一个vs2013实验实例,即我们想要的目标,原版的vs2013也会存在,没什么变化。    准备:1、Visual Studio 2013 SDK                  2、Visual Studio 2012 Color Theme Editor                 (上两个东西均可在“工具---扩展和更

OS自定义列表中的索引栏 - 2015-03-09 10:03:02

源代码下载地址:http://download.csdn.net/detail/haogaoming123/8423023
相信大家做过安卓开发或者安卓自动化测试开发的都离不开adb这个Android Debug Bridge这个工具,该工具有个很重要的功能就是端口转发。比如你在目标安卓机器端建立了一个服务来处理获取当前界面元素,监听的是设备本机网络上的端口5555,那么在pc客户端你就可以执行"adb forward tcp:5555 tcp:5555"来把发送到pc本地的5555端口的数据直接转发到目标安卓机器的服务监听端口上,非常的方便。(这里主要关注的是pc端和安卓机器端通过adb connect ip命令来通过tcp
【狗刨学习网】 【Unity3D基础教程】给初学者看的Unity教程(二):所有脚本组件的基类 -- MonoBehaviour的前世今生 引子 上一次我们讲了 GameObject,Compoent,Time,Input,Physics ,其中Time,Input,Physics都是Unity中的全局变量。GameObject是游戏中的基本物件。GameObject是由Component组合而成的,GameObject本身必须有Transform的Component,这也加深了我们对GameObject
在前面网络编程(1)中我们了解到如果想要访问其他主机的资源,那么就得知道该资源的URL。那么如果知道了该URL,我们该怎样去 访问其主机上的资源呢?本文 主要讲清楚Java语言编程的Android网络编程的最基础的父类URLConnectiion,该类是利用URL来实现主机资源的访问,其每个子类的特点都进一步优化并支持新的网络协议,达到从全面到局部,从广泛到精细的系统学习。 从JavaAPI中可以看到 java.lang.Object java.net.URLConnection URLConnectio