- 浏览: 550667 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (204)
- android (78)
- spring MVC (10)
- spring (3)
- javascript (9)
- 喧泄 (0)
- libgdx (1)
- android View展现特效 (6)
- android.graphics.* (2)
- android ListView (4)
- android 电话及短信 (3)
- iPhone (4)
- iPhone自定义控件 (2)
- android 网文摘记 (4)
- java (30)
- android imageView (2)
- android textView EditText (1)
- 用户体验元素 (1)
- 营销推广 (3)
- android 多媒体 (4)
- android原创学习笔记 (7)
- 业余收入 (1)
- AndEngine (3)
- baidu map (3)
- android课程 (3)
- elasticsearch (1)
- freeSwitch (5)
最新评论
-
牵着蚂蚁散步:
哥,在吗,你现在操作freeswitch是用event soc ...
java esl连接freeswitch发送拨打电话<第二篇> -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
过滤特殊字符及表情符 -
YLCCMM:
按照楼主这样是可以页面是可以完成效果,但是后台依旧会报错打印出 ...
spring mvc CommonsMultipartResolver文件上传maxUploadSize限制大小 -
喧嚣求静:
sunshaoqun 写道二次元 写道希望能分享下.so文件编 ...
手机录音-amr -
sunshaoqun:
二次元 写道希望能分享下.so文件编译源码!求.so源码。。。 ...
手机录音-amr
关于自定义控件或属性
请转此学习
看代码之前先看看效果图
时间选择
使用方法:配置为时间(dateTime:dateFormatStr="HH:mm:ss" dateTime:dateFormat="time")
看代码之前先看看效果图
日期选择
使用方法:配置为日期(dateTime:dateFormatStr="yyyy-MM-dd" dateTime:dateFormat="date")
res/values/attrs.xml
实现类
实现类中用到的布局文件
date_pick_txt.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="DatePickText">
<attr name="dateFormatStr" format="string"/>
<attr name="dateFormat" >
<!-- yyyy-MM-dd -->
<enum name="date" value="0" />
<!-- HH:mm:ss -->
<enum name="time" value="1" />
</attr>
</declare-styleable>
</resources>
找不到R.styleable.DatePickText_layout_height
<com.app.view.DatePickText android:layout_marginLeft="7dp" android:layout_width="230dp" android:layout_height="35dp"
android:id="@+id/v_birthday" dateTime:dateFormatStr="yyyy-MM-dd" dateTime:dateFormat="date"/>
layout_height是android原有属性,在使用自定义组件时,填上就可。
找不到R.styleable.DatePickText_layout_height
是不是,引用到图片资源没有,这个只要同名,你随便给个图片就可
请转此学习
看代码之前先看看效果图
时间选择
使用方法:配置为时间(dateTime:dateFormatStr="HH:mm:ss" dateTime:dateFormat="time")
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:dateTime="http://schemas.android.com/apk/res/com.app"/> <com.app.view.DatePickText android:layout_marginLeft="7dp" android:layout_width="230dp" android:layout_height="35dp" android:id="@+id/v_birthday" dateTime:dateFormatStr="HH:mm:ss" dateTime:dateFormat="time"/>
看代码之前先看看效果图
日期选择
使用方法:配置为日期(dateTime:dateFormatStr="yyyy-MM-dd" dateTime:dateFormat="date")
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:dateTime="http://schemas.android.com/apk/res/com.app"/> <com.app.view.DatePickText android:layout_marginLeft="7dp" android:layout_width="230dp" android:layout_height="35dp" android:id="@+id/v_birthday" dateTime:dateFormatStr="yyyy-MM-dd" dateTime:dateFormat="date"/>
res/values/attrs.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="DatePickText"> <attr name="dateFormatStr" format="string"/> <attr name="dateFormat" > <!-- yyyy-MM-dd --> <enum name="date" value="0" /> <!-- HH:mm:ss --> <enum name="time" value="1" /> </attr> </declare-styleable> </resources>
实现类
package com.app.view; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; import android.app.DatePickerDialog; import android.app.TimePickerDialog; import android.content.Context; import android.content.res.TypedArray; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.DatePicker; import android.widget.EditText; import android.widget.ImageButton; import android.widget.LinearLayout; import android.widget.TimePicker; import com.app.R; public class DatePickText extends LinearLayout { private Integer dateFormat; private String layout_height,layout_width; private String dateFormatStr; private EditText edit; private ImageButton btn_date; private LinearLayout layout; public static final int TOP = 0; public static final int BOTTOM = 1; public static final int LEFT = 2; public static final int RIGHT = 3; public static final int DATE = 0; public static final int TIME = 1; private SimpleDateFormat df ; private final Calendar cal = Calendar.getInstance(Locale.SIMPLIFIED_CHINESE); public DatePickText(Context context) { super(context); } public DatePickText(Context context, AttributeSet attrs) { super(context, attrs); TypedArray typeA =context.obtainStyledAttributes(attrs, R.styleable.DatePickText); layout_height=typeA.getString(R.styleable.DatePickText_layout_height); layout_width=typeA.getString(R.styleable.DatePickText_layout_width); dateFormatStr=typeA.getString(R.styleable.DatePickText_dateFormatStr); dateFormat=typeA.getInteger(R.styleable.DatePickText_dateFormat,DATE); //typeA.g LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); layoutInflater.inflate(R.layout.date_pick_txt,this); layout=(LinearLayout)findViewById(R.id.date_linear); edit=(EditText)findViewById(R.id.date_txt); btn_date=(ImageButton)findViewById(R.id.date_btn); processUi(context); } private void processUi(final Context context){ //ViewGroup.LayoutParams params=new ViewGroup.LayoutParams(params); //layout.setLayoutParams(params); btn_date.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { System.out.println("-------------click------------"); buildDateOrTimeDialog(context); } }); } private void buildDateOrTimeDialog(Context context){ df = new SimpleDateFormat(dateFormatStr); switch(dateFormat) { case DATE: date: new DatePickerDialog( context,listener , cal .get(Calendar. YEAR ), cal .get(Calendar. MONTH ), cal .get(Calendar. DAY_OF_MONTH ) ).show(); break; case TIME: System.out.println("----------time---------------"); new TimePickerDialog(context,timeListen,cal.get(Calendar.HOUR_OF_DAY),cal.get(Calendar.MINUTE),true).show(); break; default: new DatePickerDialog( context,listener , cal .get(Calendar. YEAR ), cal .get(Calendar. MONTH ), cal .get(Calendar. DAY_OF_MONTH ) ).show(); } } private DatePickerDialog.OnDateSetListener listener = new DatePickerDialog.OnDateSetListener(){ // @Override public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) { cal .set(Calendar. YEAR , arg1); cal .set(Calendar. MONTH , arg2); cal .set(Calendar. DAY_OF_MONTH , arg3); updateDate(); } }; // 当 DatePickerDialog 关闭,更新日期显示 private void updateDate(){ edit.setText( df .format( cal .getTime())); } TimePickerDialog.OnTimeSetListener timeListen = new TimePickerDialog.OnTimeSetListener() { //同DatePickerDialog控件 @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { cal.set(Calendar.HOUR_OF_DAY, hourOfDay); cal.set(Calendar.MINUTE, minute); cal.set(Calendar.SECOND, cal.get(Calendar.SECOND)); updateTimes(); } }; //更新页面TextView的方法 private void updateTimes() { edit.setText(df.format(cal.getTime())); } }
实现类中用到的布局文件
date_pick_txt.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:id="@+id/date_linear" android:layout_width="230dp" android:layout_height="35dp"> <RelativeLayout android:id="@+id/date_relative" android:layout_height="fill_parent" android:layout_width="fill_parent"> <EditText android:id="@+id/date_txt" android:editable="false" android:layout_height="fill_parent" android:layout_width="fill_parent" android:includeFontPadding="false" android:hint="yyyy-mm-dd"/> <ImageButton android:src="@drawable/date_pic" android:layout_width="28dp" android:layout_marginLeft="-33dp" android:layout_alignBottom="@+id/date_txt" android:layout_centerInParent="true" android:layout_centerHorizontal="true" android:layout_height="26dp" android:layout_toRightOf="@+id/date_txt" android:id="@+id/date_btn"/>/ </RelativeLayout> </LinearLayout>
评论
6 楼
喧嚣求静
2013-05-05
javaxhw 写道
代码里面的 :R.declare-styleable.DatePickText
eclipse提示找不到啊?咋回事
eclipse提示找不到啊?咋回事
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="DatePickText">
<attr name="dateFormatStr" format="string"/>
<attr name="dateFormat" >
<!-- yyyy-MM-dd -->
<enum name="date" value="0" />
<!-- HH:mm:ss -->
<enum name="time" value="1" />
</attr>
</declare-styleable>
</resources>
5 楼
喧嚣求静
2013-05-05
javaxhw 写道
javaxhw 写道
代码里面的 :R.declare-styleable.DatePickText
eclipse提示找不到啊?咋回事
eclipse提示找不到啊?咋回事
找不到R.styleable.DatePickText_layout_height
<com.app.view.DatePickText android:layout_marginLeft="7dp" android:layout_width="230dp" android:layout_height="35dp"
android:id="@+id/v_birthday" dateTime:dateFormatStr="yyyy-MM-dd" dateTime:dateFormat="date"/>
layout_height是android原有属性,在使用自定义组件时,填上就可。
4 楼
javaxhw
2012-11-10
javaxhw 写道
代码里面的 :R.declare-styleable.DatePickText
eclipse提示找不到啊?咋回事
eclipse提示找不到啊?咋回事
找不到R.styleable.DatePickText_layout_height
3 楼
javaxhw
2012-11-10
代码里面的 :R.declare-styleable.DatePickText
eclipse提示找不到啊?咋回事
eclipse提示找不到啊?咋回事
2 楼
喧嚣求静
2012-08-24
endual 写道
这个正好是我要的效果呵呵,就是把代码复制下来错误了。
哎。。。,这个自定义的xml第一次用,所以不太懂。
多谢多谢
哎。。。,这个自定义的xml第一次用,所以不太懂。
多谢多谢
是不是,引用到图片资源没有,这个只要同名,你随便给个图片就可
1 楼
endual
2012-06-19
这个正好是我要的效果呵呵,就是把代码复制下来错误了。
哎。。。,这个自定义的xml第一次用,所以不太懂。
多谢多谢
哎。。。,这个自定义的xml第一次用,所以不太懂。
多谢多谢
发表评论
-
Android动态改变shape填充颜色
2017-04-10 16:19 1618工作中需要依据不同的银行卡显示不同背景,由于银行很多,不可能 ... -
android studio源码关联
2016-12-19 11:36 662在android stuido开发工具中,源码的关联是依据当 ... -
仿支付宝广告-顶部往下掉的popwindow,消失在左上角
2016-09-13 16:43 2021最近玩支付宝,有时候打开时,会从顶部掉下一个营销的广告窗口, ... -
圆形进度条-倒计时
2016-09-08 15:28 834参考了:https://github.com/yanz ... -
Android 6.0 运行时权限处理完全解析-兼容
2016-07-21 10:12 4501.项目增加V7包,*Activity extends Ap ... -
安卓自定义进度条样式-layer-list
2016-07-06 09:32 1403//在开发中常用到的知识点,太多了,记不住,只能放网上做笔记 ... -
转载-Android系统支持的CPU架构
2016-06-30 10:12 4622原文链接 早期的Android系统几乎只支持ARMv5的C ... -
安卓通用baseAdapter数据适配器
2016-06-29 16:28 660用法 topFourFuncAdapter=new Ab ... -
android 编译dex,方法数限制65536
2016-06-21 15:40 1128产生原因,大致是android在编译dex后,进行优化时,使 ... -
android 5.1模拟器安装apk报INSTALL_FAILED_NO_MATCHING_ABIS
2016-06-12 16:08 2978android 5.1模拟器安装apk报INSTALL_FA ... -
android 自定义软键盘-转载
2016-06-08 15:45 734场景: 1.支付控件时,需要随机布局软键盘 2. 电视机 ... -
html5-android-转载
2016-05-26 20:32 617(上)包括Android设备多分辨率的问题,Android中 ... -
android代码编写ColorStateList
2015-12-26 16:48 887private void initViews() { ... -
Android资源图片读取机制-转载
2015-11-09 20:42 834在新建一个Android项目时,在res目录下会自动生成几个 ... -
移动端h5开源框架
2015-09-23 10:44 7032Amaze UI 含近 20 个 CSS 组件、20 ... -
Android基于volley的快速开发基类
2015-08-29 10:02 1512Volley框架至2013面试以来,已经普及了很多andro ... -
android QQ互联第三方登录开发
2015-08-26 17:14 4069android QQ互联第三方登录开发 背景: 当前基 ... -
android array.xml中使用图片和颜色资源
2015-08-23 11:17 3051<?xml version="1.0& ... -
开源新闻客户端QuickNews学习
2015-08-20 14:11 2377开源新闻客户端QuickNews学习 先贴出源码地址 h ... -
转载-ViewPagerindicator 源码解析
2015-08-12 20:27 783ViewPagerindicator 源码解析
相关推荐
Android 自定义时间日期控件 使用方法参考:http://blog.csdn.net/susanyuanaijia/article/details/53508295
Android实例源码-自定义控件类安卓源代码(20例) androd自定义有进度的圆形进度条.zip Android 4.0风格中文滚动输入.zip Android Form EditText 验证输入合法性的编辑框.zip Android 自定义头部控件,简单易用.rar ...
自定义控件 短视频录制控件 列表选择 圆形图片 条形控件 代码简洁易懂,有大量注释。
自定义下拉选择框,简单易用,自带默认动画,支持各个方向弹出,支持多种注入数据方式
|--自定义控件风格和全局背景 |--自定义组合控件 |--自定义配置文件资源 |--自定义颜色状态选择资源 |--自定义颜色资源 |--获取网页的源码 |--读取外部资源的文件3种方式 |--读取手机内的短信 |--通信之Application...
7.3.10 时间选择器(TimePicker)介绍与应用 7.3.11 滚动视图(ScrollView)介绍与应用 7.3.12 进度条(ProgressBar)介绍与应用 7.3.13 拖动条(SeekBar)介绍与应用 7.3.14 评分组件(RatingBar)介绍与应用 7.3.15 图片视图...
滚轮布局WheelView大家经常使用,比如在选择生日的时候,风格类似系统提供的DatePickerDialog,这篇文章主要为大家详细介绍了Android自定义实现循环滚轮控件WheelView,感兴趣的小伙伴们可以参考一下
android仿IOS时间选择控件,点击按钮,弹出时间选择对话框进行选择!
该资源为本人编写的Android自定义由底部弹出对话框项目,具体描述可查看本人博客《Android安卓自定义由底部弹出对话框》:(开发中遇到一个日期选择器的需求,就是界面中有两段文本显示日期,点击之后从底部弹出日期...
在开发中时常会遇到选择时间的需要,不仅仅要精确到分钟,有的时候要到秒,这个demo采用 WheelView控件,以弹框的方式供用户选择时间,到底精确到那个时间,可以根据需要自定义(WheelView控件为动态生成)
Android自定义控件实战——仿新浪微博、QQ好友动态滑到底部自动加载 http://blog.csdn.net/zhongkejingwang/article/details/38963177 git上面有最新版本 https://github.com/jingchenUSTC 2....
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
Android例子源码可以通过网络请求内容的自定义列表选择Dialog Android例子源码图片旋转缩放加盖水印透明倾斜扭曲处理 Android例子源码实现Windows8风格的Dialog Android例子源码强大的listview效果集合项目 Android...
可实现两个选项的选择如性别选择、开关选择等。 可设置背景、边框、滑块、文字的颜色。 可设置边框大小。
android 2.2显示滚轮式日期选择框,日期选择框,自定义的日期选择框,显示效果和4.0系统以上的效果一样。
Android Studio 在xml文件中设置界面布局1、xml文件中给输入框editText修改下划线颜色2、设置button按钮为圆角及修改按钮颜色3、运用约束布局时预览效果和运行效果不一致 写一写今天困扰我很久的问题:如何给...
整个框架大概的流程是加载皮肤包,找到被标记的控件,通过自定义的Factory工程过滤掉其他控件,使用皮肤包中的资源文件更新被标记的ui。 使用操作 1、导入android-skin-loader框架包 androidStudio File->new->...
第八章 组合框控件的使用 (iOS and Android) 81 8.1多设备应用程序中的选择器 81 8.2使用代码建立列表数据项 84 8.3显示一个指定的项目 84 8.4编写用户选择后的事件处理程序 86 第九章 使用地图控件 (iOS and ...
11、Spinner View 选择框(弹出框形式选择) 12、DatePicker TimePicker View 日期时间选择器 13、ProgressBar View 普通进度条、显示在标题栏上的进度条 14、RatingBar View 评级 15、 SeekBar 拖动条,音量调节...
* 获得日期或时间字符串 372 * num天前的日期 373 * num天后的日期 373 * 判断 thingdate 的 dotime 天后是否在今天之后 374 * 判断testDate+testTime是否在两个时间之内 375 附录: 378 附录1、XML布局中的常用属性...