DatePicker 与 TimePicker 控件占用的空间是固定的,没有参数可以更改。

如果修改 length 和 width 属性,只会让控件被切割,显示将不完整。很多人说可以使用 scale 属性来放大或缩小

android:scaleX="0.8"
android:scaleY="0.8"

这种方法虽然会缩小控件,但控件还是没法显示全。

找到的一个不错的解决办法是,用 Java 反射机制获取控件相关属性,然后修改。代码如下:

        Field[] fields = DatePicker.class.getDeclaredFields();
//get DatePicker fields
View[] v_months = null;
EditText [] v_edits;
int size = fields.length;
v_edits = new EditText [size];
v_months = new View [size];
for(int i=0;i<size;i++) {
fields[i].setAccessible(true);
if(fields[i].getType().getSimpleName().equals("NumberPicker")) {
try {
v_months[i] = (View)fields[i].get(datePicker1);
/* change width of the line in the picker */
v_months[i].measure(0, 0);
v_months[i].getLayoutParams().width = (int) (v_months[i].getMeasuredWidth() * 0.7f);
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
}
for(int i=0;i<size;i++) {
if(v_months[i] != null) {
fields = v_months[i].getClass().getDeclaredFields();
for(Field field : fields) {
field.setAccessible(true);
if(field.getType().getName().equals(EditText.class.getName())) {
try {
v_edits[i] = (EditText) field.get(v_months[i]);
/* change text size and color of the picker */
v_edits[i].setTextSize(5);
v_edits[i].setTextColor(getResources().getColor(R.color.holo_blue));
} catch (Exception e) {
Log.e(TAG, e.getMessage());
}
}
}
}
}

用这种方法,可以结合 scale 属性来达到任意修改这两种控件大小的目的。

参考文章:

http://yq135314.iteye.com/blog/1998653

Android DatePicker / TimePicker 占空间太大的解决办法的更多相关文章

  1. 刚装的系统C盘占空间特别大怎么办?关闭win7的系统还原和调整虚拟内存

    刚装的win7系统,C盘占空间特别大,清理垃圾,清理碎片之后还是特别大,检查一下,系统才20G,C盘却占用了40G,其实是没有关闭系统还原,再就是没有调整虚拟内存.win7旗舰版(其他版本也可能这样, ...

  2. Unity3D占用内存太大的解决方法

    原地址:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大 ...

  3. (转)Unity3D占用内存太大的解决方法

    自:http://www.cnblogs.com/88999660/archive/2013/03/15/2961663.html 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大.  ...

  4. Mysql删除数据后磁盘空间未释放的解决办法【转】

    转自 Mysql删除数据后,磁盘空间未释放的解决办法 - 今日头条(TouTiao.com)http://toutiao.com/a6303087712678412546/?tt_from=mobil ...

  5. 空间不支持openssl解决办法

    windows server2003 系统 IIS6.0 ,支付宝担保交易功能不能用,提示您的空间不支持openssl 解决办法如下:1.在C:\WINDOWS 下打开php.ini 将 extens ...

  6. vs调试windows mobile程序时布署时间太长的解决办法

    vs调试windows mobile程序时布署时间太长的解决办法 1.VS平台上,选工具-选项-项目和解决方案-MS BUILD项目生成输出详细信息中选择“诊断”,目的是在调试窗口中看出哪个过程编译的 ...

  7. Response.Write()方法响应导致页面字体变大的解决办法

    关于ASP.NET中用Response.Write()方法响应导致页面字体变大的解决办法     最近研究了ASP.NET,发现一个问题,比方说在页面里面有个Button,要点击以后要打开新窗口,而且 ...

  8. JQuery Mobile 的引用代码,以及在手机浏览器上字体太小的解决办法

    JQuery Mobile 的引用代码: <link rel="stylesheet" href="http://code.jquery.com/mobile/1. ...

  9. html标签被div嵌套页面字体变大的解决办法

    html标签被div嵌套页面字体变大的解决办法 <div> <html> <head> <title></title> </head& ...

随机推荐

  1. snmp获取设备相关管理信息

    在本文中,作者将向我们展示如何用snmp代理监视网络设备,甚至发送软件警告. 网络上很多代理在为我们服务.只要我们开启UDP/161,162端口,这些代理就会以Management Informati ...

  2. VS2010开发MFC ActiveX,摄像头拍照上传Webservice(2)

    继续记录,第二步开发摄像头拍照功能. 使用vfw.h开发摄像头拍照功能,关于vfw网上有很多文章,很多代码可以参考 参考:http://blog.163.com/huangqiao_8/blog/st ...

  3. fastjson数据格式转换 SerializerFeature属性详解

    SerializerFeature属性 名称 含义 备注 QuoteFieldNames 输出key时是否使用双引号,默认为true   UseSingleQuotes 使用单引号而不是双引号,默认为 ...

  4. 值类型 struct

    由于值类型存在装箱和拆箱的过程,所有导致在修改值类型对象内部数据时,有可能会出现一些与预想不同的结果. 比如 Point p = , ); Console.WriteLine(p); p.Change ...

  5. FILTER:progid:DXImageTransform.Microsoft.Gradient使用

    FILTER:progid:DXImageTransform.Microsoft.Gradient使用 语法: filter:progid:DXImageTransform.Microsoft.Gra ...

  6. iOS7的iBeacon初步使用

    iBeacon是iOS7的新增的功能,通过BLE实现室内定位,精确到厘米级别. 测试使用两台iPhone(支持BLE),一台作为iBeacon基站广播信号,代码使用官方源码AirLocate,另外一台 ...

  7. Windows Python 2.7环境搭建

    一.安装及修改环境变量 我安装的版本是python-2.7.15.amd64,因为2.7.9之后的版本都会安装好pip.将Python执行文件所在文件夹加入path路径,C:\Python27.将pi ...

  8. Region在connection前后进行“交并差”等操作的异同

    connection直译为“连接”.其实它的功能不是连接,它的功能是确定区域之间的连接关系,如果简单粗暴地解释的话,可以认为:connection的意思是“打散”,将不连接的区域打散成一个一个的区域. ...

  9. Scheduling the Delivery of Local Notifications

    [Scheduling the Delivery of Local Notifications] Apps can use local notifications to display alerts, ...

  10. Linux执行YUM命令报错解决方案

    Loaded plugins: rhnplugin, security This system is not registered with RHN. RHN support will be disa ...