Android 零碎知识点---1
2017-08-20 17:14
267 查看
Android Notification.setLatestEventInfo弃用和Notification.Builder用法
(转载自:http://blog.csdn.net/sinat_28676875/article/details/50590602)今天在学习小米便签的源码的时候,至于源码的地址,http://m.blog.csdn.net/article/details?id=50544248 ,里面有好多github的开源项目,打开项目,报错2处,一处就是便是找不到setLatestEventInfo()这个方法,我用的api6.0编译的,在这个api这个方法时被弃用的,采用Notification.Builder来代替,
原来的用法:1首先是拿到NotificationManager这个管理类实例,
mNotifiManager = (NotificationManager) mContext
.getSystemService(Context.NOTIFICATION_SERVICE);
2.创建Notification实例,第一个参数是传入通知的图片,第二个是传入通知的标题,这里采用的getString的方法,顺带一提,getString方法时通过参数tickerId来调用xml文件里的常量,一般这个值为R.String.xxx
Notification notification =new Notification(R.drawable.notification, mContext.getString(tickerId), System.currentTimeMillis())
3调用setLatestEvent(xx),里面有四个参数,分别是context,标题,内容,和pendingIntnet 4个参数
notification.setLatestEventInfo(mContext, mContext.getString(R.string.app_name), content,
pendingIntent);
4.d调用NotificationManager的notify(xx)方法,接收两个参数一个id,可用于取消通知的时候用,另一个是Notification的实例
新的:在APi6.0时方法2,和3步骤被弃用,用过Notification.Builder来创建,直接来看官方的提供代码例程吧`
Notification noti = new Notification.Builder(mContext)
.setContentTitle(“New mail from ” + sender.toString())
.setContentText(subject)
.setSmallIcon(R.drawable.new_mail)
.setLargeIcon(aBitmap)
.build();
他是通过穿件一个Notification.Builder对象,并对这个对象进行设置,然后调用build方法来返回一个Notification对象,最后再执行上述第四个步骤,这里要注意的是,替代setLatestEventInfo(xxx)方法除了上述设置标题和内容,里面还有一个setContentIntent(pendingIntent)来设置点击通知后调用的Intent,还有其他方法详见Android官方文档http://developer.android.com/reference/android/app/Notification.Builder.html
TextView属性android:ellipsize实现跑马灯效果
TextView实现文字滚动需要以下几个要点:1.文字长度长于可显示范围:android:singleLine=”true”
2.设置可滚到,或显示样式:android:ellipsize=”marquee”
3.TextView只有在获取焦点后才会滚动显示隐藏文字,因此需要在包中新建一个类,继承TextView。重写isFocused方法,这个方法默认行为是,如果TextView获得焦点,方法返回true,失去焦点则返回false。跑马灯效果估计也是用这个方法判断是否获得焦点,所以把它的返回值始终设置为true。
ellipsize属性
设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)
marqueeRepeatLimit属性
在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。
focusable属性
能否获得焦点,同样focusableInTouchMode应该是滑动时能否获得焦点。
Android系统中TextView实现跑马灯效果,必须具备以下几个条件:
1、android:ellipsize=”marquee”
2、TextView必须单行显示,即内容必须超出TextView大小
3、TextView要获得焦点才能滚动
XML代码:
android:ellipsize=”marquee”, android:singleLine=”true”
Java代码:
mTVText.setText(“哼唱接撒砥砺风节雷锋精神http://orgcent.com/,很长很长很长很长很长很长的数据”);
mTVText.setSingleLine(true);
mTVText.setEllipsize(TruncateAt.MARQUEE);
PS: TextView.setHorizontallyScrolling(true); //让文字可以水平滑动
TextView还可以设置跑马灯效果的滚动次数,如下:
XML代码设置:
android:marqueerepeatlimit=”1”。1代表1次,-1代表无限循环。
Java代码设置:
mTVText.setMarqueeRepeatLimit(-1);
EditText 的 inputType属性(键盘类型)
(转载自:http://www.cnblogs.com/hiqc/p/4763844.html)android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用。这也大大的方便的操作。有时需要虚拟键盘只为字符或只为数字。所以inputType尤为重要。
//文本类型,多为大写、小写和数字符号。
android:inputType参数类型说明
android:inputType=”none”–输入普通字符
android:inputType=”text”–输入普通字符
android:inputType=”textCapCharacters”–输入普通字符
android:inputType=”textCapWords”–单词首字母大小
android:inputType=”textCapSentences”–仅第一个字母大小
android:inputType=”textAutoCorrect”–前两个自动完成
android:inputType=”textAutoComplete”–前两个自动完成
android:inputType=”textMultiLine”–多行输入
android:inputType=”textImeMultiLine”–输入法多行(不一定支持)
android:inputType=”textNoSuggestions”–不提示
android:inputType=”textUri”–URI格式
android:inputType=”textEmailAddress”–电子邮件地址格式
android:inputType=”textEmailSubject”–邮件主题格式
android:inputType=”textShortMessage”–短消息格式
android:inputType=”textLongMessage”–长消息格式
android:inputType=”textPersonName”–人名格式
android:inputType=”textPostalAddress”–邮政格式
android:inputType=”textPassword”–密码格式
android:inputType=”textVisiblePassword”–密码可见格式
android:inputType=”textWebEditText”–作为网页表单的文本格式
android:inputType=”textFilter”–文本筛选格式
android:inputType=”textPhonetic”–拼音输入格式
android:inputType=”number”–数字格式
android:inputType=”numberSigned”–有符号数字格式
android:inputType=”numberDecimal”–可以带小数点的浮点格式
android:inputType=”phone”–拨号键盘
android:inputType=”datetime”
android:inputType=”date”–日期键盘
android:inputType=”time”–时间键盘
Android之设置EditText输入类型(setInputType()方法和android:inputType属性)
(转载自:http://blog.csdn.net/u013059863/article/details/49914513)在Android开发过程中,我们经常使用到EditText控件,并且会根据各种需求设置它的输入类型。设置EditText输入类型主要有两种方法,一种是使用EditText的setInputType()方法,另一种是在布局文件中使用android:inputType属性来设置。
下面将介绍这两种方法:
(1)使用EditText的setInputType()方法设置输入类型:
EditText editText;
//输入类型为没有指定明确的类型的特殊内容类型 editText.setInputType(InputType.TYPE_NULL); //输入类型为普通文本 editText.setInputType(InputType.TYPE_CLASS_TEXT); //输入类型为数字文本 editText.setInputType(InputType.TYPE_CLASS_NUMBER); //输入类型为电话号码 editText.setInputType(InputType.TYPE_CLASS_PHONE); //输入类型为日期和时间 editText.setInputType(InputType.TYPE_CLASS_DATETIME); //输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,允许输入日期和时间。 editText.setInputType(InputType.TYPE_DATETIME_VARIATION_NORMAL); //输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个日期。 editText.setInputType(InputType.TYPE_DATETIME_VARIATION_DATE); //输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个时间。 editText.setInputType(InputType.TYPE_DATETIME_VARIATION_TIME); //输入类型为决定所给文本整体类的位掩码 editText.setInputType(InputType.TYPE_MASK_CLASS); //输入类型为提供附加标志位选项的位掩码 editText.setInputType(InputType.TYPE_MASK_FLAGS); //输入类型为决定基类内容变化的位掩码 editText.setInputType(InputType.TYPE_MASK_VARIATION); //输入类型为小数数字,允许十进制小数点提供分数值。 editText.setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL); //输入类型为数字是带符号的,允许在开头带正号或者负号 editText.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED); //输入类型为{@link#TYPE_CLASS_NUMBER}的缺省变化值:为纯普通数字文本 editText.setInputType(InputType.TYPE_NUMBER_VARIATION_NORMAL); //输入类型为{@link#TYPE_CLASS_NUMBER}的缺省变化值:为数字密码 editText.setInputType(InputType.TYPE_NUMBER_VARIATION_PASSWORD); //输入类型为自动完成文本类型 editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE); //输入类型为自动纠正文本类型 editText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); //输入类型为所有字符大写 editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_CHARACTERS); //输入类型为每句的第一个字符大写 editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES); //输入类型为每个单词的第一个字母大写 editText.setInputType(InputType.TYPE_TEXT_FLAG_CAP_WORDS); //输入多行文本 editText.setInputType(InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE); //进行输入时,输入法无提示 editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS); //输入一个短的,可能是非正式的消息,如即时消息或短信。 editText.setInputType(InputType.TYPE_TEXT_VARIATION_SHORT_MESSAGE); //输入长内容,可能是正式的消息内容,比如电子邮件的主体 editText.setInputType(InputType.TYPE_TEXT_VARIATION_LONG_MESSAGE); //输入文本以过滤列表等内容 editText.setInputType(InputType.TYPE_TEXT_VARIATION_FILTER); //输入一个电子邮件地址 editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS); //输入电子邮件主题行 editText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_SUBJECT); //输入一个密码 editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD); //输入老式的普通文本 editText.setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL); //输入人名 editText.setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME); //输入邮寄地址 editText.setInputType(InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS); //输入语音发音输入文本,如联系人拼音名称字段 editText.setInputType(InputType.TYPE_TEXT_VARIATION_PHONETIC); //输入URI editText.setInputType(InputType.TYPE_TEXT_VARIATION_URI); //输入对用户可见的密码 editText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); //输入网页表单中的文本 editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT); //输入网页表单中的邮件地址 editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS); //输入网页表单中的密码 editText.setInputType(InputType.TYPE_TEXT_VARIATION_WEB_PASSWORD);
下面是几个简单的例子:
/**
* 第一个例子:对用户可见的密码字段
*/
editText.setInputType(InputType.TYPE_CLASS_TEXT |
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
/** * 第二个例子:具有自动大写的多行邮寄地址 */ editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_POSTAL_ADDRESS | InputType.TYPE_TEXT_FLAG_MULTI_LINE); /** * 第三个例子:一个时间字段 */ editText.setInputType(InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_TIME);
(2)在布局文件中使用android:inputType属性来设置:
//输入类型为没有指定明确的类型的特殊内容类型
android:inputType=”none”
//输入类型为普通文本 android:inputType="text" //输入类型为数字文本 android:inputType="number" //输入类型为电话号码 android:inputType=”phone” //输入类型为日期和时间 android:inputType=”datetime” //输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个日期。 android:inputType=”date” //输入类型为{@link#TYPE_CLASS_DATETIME}的缺省变化值,只允许输入一个时间。 android:inputType=”time” //输入类型为小数数字,允许十进制小数点提供分数值。 android:inputType="numberDecimal" //输入类型为数字是带符号的,允许在开头带正号或者负号 android:inputType="numberSigned" //输入类型为数字密码 android:inputType="numberPassword" //输入类型为自动完成文本类型 android:inputType="textAutoComplete" //输入类型为自动纠正文本类型 android:inputType="textAutoCorrect" //输入类型为所有字符大写 android:inputType="textCapCharacters" //输入类型为每句的第一个字符大写 android:inputType="textCapSentences" //输入类型为每个单词的第一个字母大写 android:inputType="textCapWords" //输入法多行文本 android:inputType="textImeMultiLine" //进行输入时,输入法无提示 android:inputType="textNoSuggestions" //输入一个短的,可能是非正式的消息,如即时消息或短信。 android:inputType="textShortMessage" //输入长内容,可能是正式的消息内容,比如电子邮件的主体 android:inputType="textLongMessage" //输入文本以过滤列表等内容 android:inputType="textFilter" //输入一个电子邮件地址 android:inputType="textEmailAddress" //输入电子邮件主题行 android:inputType="textEmailSubject" //输入一个密码 android:inputType="textPassword" //输入对用户可见的密码 android:inputType="textVisiblePassword" //输入人的姓名 android:inputType="textPersonName" //输入邮寄地址 android:inputType="textPostalAddress" //输入语音发音输入文本,如联系人拼音名称字段 android:inputType="textPhonetic" //输入URI android:inputType="textUri" //输入网页表单中的文本 android:inputType="textWebEditText" //输入网页表单中的邮件地址 android:inputType="textWebEmailAddress" //输入网页表单中的密码 android:inputType="textWebPassword"
相关文章推荐
- Android零碎知识点 1
- Android 零碎知识点
- Android零碎知识点总结
- android零碎知识点
- Android零碎知识点总结
- Android零碎知识点
- Java&Android零碎的知识点2
- Android 零碎知识点---2
- android零碎知识点总结
- 学习android零碎知识点笔记 preference【转载】
- android零碎知识点总结
- Java&Android零碎的知识点
- android的一些零碎的知识点
- android 零碎知识点
- Android零碎知识点
- android 零碎知识点收集
- Android 零碎知识点整理
- Android的各种零碎知识点(持续补充)
- Android 零碎知识点
- Android零碎知识点