推广 热搜:   公司  企业  快速  中国  设备  上海  未来  行业   

安卓常用实用功能代码片大全(长期更新)

   日期:2024-10-31     移动:http://kaire.xrbh.cn/quote/6068.html

↑duang!电脑浏览上面的‘目录+’点击蓝字有惊喜

安卓常用实用功能代码片大全(长期更新)

看别人博客,有些小技巧就直接转过来了,以后做开发可以大大提高开发效率。以下代码片摘自多个博客和自己平时的学习积累,若原作者认为侵犯著作权,请私信告知,我看到后将第一时间删除。

EditText有焦点(focusable为true)阻止输入法弹出 editText.setInputType(InputType.TYPE_NULL); // 关闭软键盘 当EidtText无焦点(focusable=false)时阻止输入法弹出

【Android】EditText标签调用键盘
在xml文件中EditText标签有一个属性android:editable="false"和android:numeric="integer"

android:numeric="integer"表示只允许输入数字,此属性可以限制用户只能输入数字内容。
android:editable表示是否可以输入内容TRUE表示可以输入,false表示不允许输入内容;
当为android:editable="false"时,点击输入框,虚拟键盘是显示不出来的,不过当设置了 android:editable=""属性时,不管是false还是true,在其后加入android:numeric="integer"属性时,是可以输入数字内容了;这里没搞明白是怎么回事,也许是numeric把前面的属性覆盖掉了。
当android:editable="false"时,在java类里如果再规定EditText.setEnabled(true)时,虚拟键盘还是不会显示的。
这个方法有两个参数 1、packageName  包名,要得到Context的包名 2、 flags  标志位,有CONTEXT_INCLUDE_CODE和CONTEXT_IGNORE_SECURITY两个选项。 CONTEXT_INCLUDE_CODE的意思是包括代码,也就是说可以执行这个包里面的代码。CONTEXT_IGNORE_SECURITY的意思 是忽略安全警告,如果不加这个标志的话,有些功能是用不了的,会出现安全警告。

4.0上如果还用Theme.Dialog,只能说很土,跟整体UI风格差别很大

请使用android:theme="@android:style/Theme.Holo.DialogWhenLarge"

在Windows下,按着电源键4秒强制关机,在Linux下强烈不建议这么做。Windows由于是单用户、“假多”任务的情况,所以即使你的计算机关机,也不会对别人造成影响。不过在Linux中,由于每个程序都是在后台执行的,因此,在你看不到的屏幕背后可能有很多人同时在你的主机上工作。而且,若不正常关机可能会造成文件系统的损毁。所以,正常情况下,要关机时需要注意下面几件事情

(1)查看系统的使用状态。

要看目前有谁在线,可以用who命令。要看网络的联机状态,可以用netstat-a命令。要看后台执行那个的程序可以执行ps-aux命令。

(2)通知在线用户的关机时刻

这个时候可以使用shutdown命令

可以在frameworksbaseservicesjavacomandroidserveramActivityManagerService.java这个类的forceStopPackage中加一个条件

这样的话在任务管理器里可以保证KISS不掉的
还有在这个方法上还有个方法clearApplicationUserData中保证如果是该进程就不让调用forceStopPackage)方法。

:其他方法 1,首先在你的service的onDestory方法里面写上启动你自己的代码,为什么要写这个?因为如果用户是在设置->应用程序->正在运行服务这里面杀掉你service的话会调用到onDestory方法的,这里就可以启动了 2:监听屏幕关闭广播,屏幕已关闭,就启动服务。 3:监听屏幕解锁广播,一样的道理,这样,基本上,你的service就达到永不停止了。对用户来说有点变态,但很多软件都这样。


第一种方法,在manifast文件里面

第二种,在代码里面

关于selector的使用方法,可以参考http://blog.csdn.net/aomandeshangxiao/article/details/6759576这篇文章,今天,遇到在RelativeLayout中添加background为selector后没有反应的问题,寻摸了很长时间,一直没有找到原因,其实只要加上一句代码就完全可以解决

         而setTextSize()是以sp为单位的.

        所以如果直接用返回的值来设置会出错,解决办法是

        用setTextSize()的另外一种形式,可以指定单位

中,否则容易出现绘制大小发生改变

android:shadowColor 阴影颜色

android:shadowDx 阴影的水平偏移量

android:shadowDy 阴影的垂直偏移量

android:shadowRadius 阴影的范围


为了统一风格和代码的复用,通常可以把这个样式抽取放入到style.xml文件中

还需要在AndroidManifest.xml 中添加震动权限 通过上面操作,我们可以使用TipHelper所定义的函数了。两个Vibrate函数的参数简单介绍如下

final Activity activity  :调用该方法的Activity实例

long milliseconds :震动的时长,单位是毫秒

long[] pattern   :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒

boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次

       ^[w-]+(.[w-]+)*@[w-]+(.[w-]+)+$    //email地址 
       ^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$  //url
       ^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$ //年-月-日
       ^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$  //月/日/年
       ^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$   //Emil
       ^((+?[0-9]{2,4}-[0-9]{3,4}-)|([0-9]{3,4}-))?([0-9]{7,8})(-[0-9]+)?$     //电话号码
       ^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$   //IP地址

       (^s*)|(s*$)   // 首尾空格

       ^[a-zA-Z][a-zA-Z0-9_]{4,15}$  // 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线)

       ^[1-9]*[1-9][0-9]*$  //  腾讯QQ号

在manifest的activity下添加

        触发长按事件后浮动原理

拖动效果

         在listView里使用addView()、addFooterView(v)、addHeaderView(v)时,要在setAdepter以前添加,或者在重写的Adapter中添加。因为setAdapter以后,就是listView已经绘制完毕,不能再进行添加。

        有的时候,我们使用progressBar的时候,后面的背景色是白色或者是亮色,使得progressBar效果很不明显,所以,我们可以在下面三条中随意添加一条熟悉就可以了

       先看下效果图


第一种效果

在styles.xml中定义

第二种效果是在源代码里面修改,在onCreate方法里面添加

设置模糊效果是通过窗口管理器(WindowManager)设置参数来完成的,这种设置只有在背景设置为透明后才能显示效果。

    我们都知道EditText与TextView是Android的文本输入框和文本显示框,但是基于手机屏幕的大小因素,如果在需要输入较多文字或者显示较多内容的时候,手机屏幕是远远不够的,因此让文本框具有滚动条的功能是手机上必备的要加上滚动条,其实很简单,只需要在文本输入框或者文本显示框上面加上滚动条控件即可,该控件名字为ScrollView,以下我们对比下(以TextView举例)。

如图

这种情况偶尔出现,没什么关系,不用管他。点击‘取消’就可以了。 

经常出现就危险了,弄不好就得重装系统了。 

运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 
“0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 
“0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 
一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件 

开始 运行 输入:cmd 确定: 

在DOS提示符下输入: 


for %1 in (%windir%system32*.dll) do regsvr32.exe /s %1 

等待3分钟,左右后,搞定了。(如果怕输错,就把这句话复制上去)。

    通过路径获取媒体文件信息  http://blog.csdn.net/aomandeshangxiao/article/details/6600725

    java文件操作 http://blog.csdn.net/aomandeshangxiao/article/details/6597302

       

    Android文件的读写 http://blog.csdn.net/aomandeshangxiao/article/details/6589510

最后引用了cycle_7,再在该文件夹中创建cycle_7.xml文件 在Java代码里面

      http://hi.baidu.com/fountainblog/blog/item/66cb9918b0220eaa4bedbc2e.html


http://mobile.51cto.com/hot-230282.htm

这里用数组存储view的x和y坐标,point[0]是x坐标,point[1]是y坐标。

 invalidate()或者view.postinvalidate()方法

需要声明权限


参考博客

http://www.cnblogs.com/-OYK/archive/2011/05/31/2064797.html

http://www.apkbus.com/android-17389-1-1.html

http://dev.10086.cn/cmdn/wiki/index.php?edition-view-8836-1.html

      paint.setAntiAlias(true);

      画图片的时候,前面设置没有用

   canvas.setDrawFilter(new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTE

1.    自定义字体

可以使用setTypeface(Typeface)方法来设置文本框内文本的字体,而android的 Typeface又使用TTF字体文件来设置字体

所以,我们可以在程序中放入TTF字体文件,在程序中使用Typeface来设置字体:第一步,在assets目录下新建fonts目录,把TTF字体文件放到这里。第二步,程序中调用

TextViewtv = (TextView)findViewById(R.id.textView);

AssetManagermgr=getAssets();//得到AssetManager

Typefacetf=Typeface.createFromAsset(mgr, "fonts/mini.TTF");//根据路径得到Typeface

tv.setTypeface(tf);//设置字体

效果如下图所示

2.    显示多种颜色的字

Android支持html格式的字符串,通过调用Html.fromHtml(str)方法可以转换html格式的字符串str。

示例如下

StringtextStr1 = "<font color="#ffff00">如果有一天,</font><br>";

StringtextStr2 = "<font color="#00ff00">我厌倦了这里,</font><br>";

StringtextStr3 = "<font color="#ff00ff">我会乘着梦,</font><br>";

StringtextStr4 = "<font color="#00ffff">飞向那个属于自己的<br>世界……</font><br>";

tv.setText(Html.fromHtml(textStr1+textStr2+textStr3+textStr4));

运行后效果如下


3.    字体加粗

在xml布局文件中使用android:textStyle=”bold”可以将英文设置成粗体,但是不能将中文设置成粗体,将中文设置成粗体的方法是:使用TextPaint的仿“粗体”设置setFakeBoldText为true。示例代码如下

tv.getPaint().setFakeBoldText(true);

效果如下



4.    添加阴影

在xml布局文件中使用一系列android:shadowXXX属性可添加设置阴影。具体为:shadowColor设置阴影颜色;shadowDx设置阴影水平偏移量;shadowDy设置阴影垂直偏移量;shadowRadius设置阴影半径。

示例代码

android:shadowColor="#ffffff"

android:shadowDx="15.0"

android:shadowDy="5.0"

android:shadowRadius="2.5"

显示效果如下


5.    插入图片

插入图片有两种方法,第一种方法就是用上面说的html格式的字符串,不过转换稍微有些麻烦。需要用到ImageGetter类来对图片的src属性进行转换。示例代码如下

StringimgStr = "<img src=""+R.drawable.sidai+""/>";

Html.ImageGetterimageGetter = new Html.ImageGetter() {

         public Drawable getDrawable(Stringarg0) {

                   // TODO Auto-generated methodstub

                   int id =Integer.parseInt(arg0);

                   Drawable draw =getResources().getDrawable(id);

                   draw.setBounds(10, 10, 228,300);

                   return draw;

         }

};

tv.append(Html.fromHtml(imgStr,imageGetter,null));

第二种方法是使用xml布局文件中一系列android:drawableXXX属性来实现插入图片。具体为:drawableBottom是在文本框内文本的底端绘制指定图像;drawableLeft是在文本框内文本的左边绘制指定图像;drawableRight是在文本框内文本的右边绘制指定图像;drawableTop是在文本框内文本的顶端绘制指定图像;drawablePadding设置文本框内文本与图像之间的间距。示例代码

android:drawableBottom=”@drawable/sidai”

插入图片后的显示效果如下

比如:一个教室有多少学生。考虑下面的例子
there is 1 student;
there are 2 students;
there are 50 students;
显然对于2,50句子格式是一样的,对于1不同,Android支持将这种变体表示为plurals资源。

 在Java代码中获取定义的plurals资源
	

      有些时候需要类似这样的功能,在一个页面停留2秒后,跳转到另外一个页面

第一种方法

在run()方法里面写上你的跳转就可以了。

第二种方法

使用handler延迟2秒后跳转。

   没有选中,在GalleryActivity中,设置gallery.setUnselectedAlpha(0.3f); 透明度为0.3 选中,在ImageAdapter的getView(int position, View convertView, ViewGroup parent)中,设置imageview.setBackgroundColor(Color.alpha(1)); 背景色为1  

大家可能知道Bitmap的叠加处理在Android平台中可以通过Canvas一层一层的画就行了,而Drawable中如何处理呢? 除了使用BitmapDrawable的getBitmap方法将Drawable转换为Bitmap外,今天Android123给大家说下好用简单的LayerDrawable类,LayerDrawable顾名思义就是层图形对象。下面直接用一个简单的代码表示: 

上面的方法中LayerDrawable是关键,Android开发网提示setLayerInset方法原型为public void setLayerInset (int index, int l, int t, int r, int b) 其中第一个参数为层的索引号,后面的四个参数分别为left、top、right和bottom。对于简单的图片合成我们可以将第一和第二层的PaintDrawable换成BitmapDrawable即可实现简单的图片合成。

发信息大致的流程是

观察者,ContentObserver

观察信息变化,它只能观察所有  就是 :Uri:content://sms/

      你点击了发送按钮后,状态还是正在发送,这时这条信息已在你不注意时插入到发件箱中(调用 onChange一次,你可以查一下outbox的内容),当发送成功后(就会打发件箱的临时信息删除 又调用一次 onChange),成功后插入到已发信息sent(这是又会调用 onChange),它会调用三次,所以你们在观察发送信息时会出现onChange出现三次,这个解决方案我暂时只想到两种方案

最近在做一个闹钟的项目,当闹钟响起的时候需要用到自动解锁和点亮屏幕,因此记录一下解屏幕锁与点亮屏幕的代码


post:

http://www.eoeandroid.com/thread-175883-1-1.html

如果只是简单需要textview在显示时候将网址、邮件地址、电话号码识别出来并且带上超链接,只需要在xml将textview的属性添加一个autolink="all"即可。但是如果希望在文字中定义更复杂的超链接,比如:点击特定文字后跳转到某个activity,则需要自定义Html类对于tag的解析方法。整个处理流程思路如下

tv.setText(Html.fromHtml(addTagsToString(s),null,new linkHandler(ctx)));
tv.setMovementMethod(linkMovementMethod.getInstance()) 在XML文件中分别定义进度条背景、第一进度颜色、第二进度颜色,然后在ProgressBar的android:progressDrawable属性应用即可。
先在drawable下建立progressbar_style.xml文件,内容如下分别定义背景,第一进度颜色,第二进度颜色
gradient是渐变,前面已经说过,corners定义的是圆角
布局中

 

"screenSize"   The current available screen size has changed. This represents a change in the currently available size, relative to the current aspect ratio, so will change when the user switches between landscape and portrait. However, if your application targets API level 12 or lower, then your activity always handles this configuration change itself (this configuration change does not restart your activity, even when running on an Android 3.2 or higher device).
Added in API level 13.

            当前可用的屏幕尺寸发生改变。这代表了一个改变目前可用大小,相对于当前的长宽比例,当用户横竖屏切换时会发生改变。然而,如果您的应用程序的API级别是12或更低,那么你的Activity会自己处理这个配置变化在Android 3.2或更高的版本,这个配置更改不会重启你的activity)。


九十五、判断wifi是否打开

       在有站位符的打印语句中,经常会犯下一个错误。

       如:System.out.printf( "y=%3d "+y),就会报这个错误。

       应修改为;改为System.out.printf( "y=%3d ",y)


别忘了加权限

有时候,有的手机会有ip6地址,所以在if)判断里面,最好这样写

本文地址:http://syank.xrbh.cn/quote/6068.html    迅博思语资讯 http://syank.xrbh.cn/ , 查看更多

特别提示:本信息由相关企业自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。