android
文章平均质量分 67
程序猿老王
这个作者很懒,什么都没留下…
展开
-
ScrollView与ListView合用问题(正确计算Listview的高度)
最近做项目中用到ScrollView和ListView一起使用的问题,显示的时候ListView不能完全正确的显示,查了好多资料终于成功解决:首先,ListView不能直接用,要自定义一个,然后重写onMeasure()方法: @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {原创 2013-05-21 14:50:11 · 3976 阅读 · 1 评论 -
android 开发如何做内存优化
不少人认为JAVA程序,因为有垃圾回收机制,应该没有内存泄露。其实如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可达了,系统就可以对转载 2013-11-28 19:22:16 · 1579 阅读 · 2 评论 -
Android应用崩溃后异常捕获并重启
在Android应用开发中,偶尔会因为某些异常导致正在使用的应用出现异常并强制关闭,这样导致不友好的用户体验。为了解决这个问题,我们需要捕获出现的异常并做处理。在Java中有两类异常,分别是Error和RuntimeException,前者是不需要我们去处理的,我们处理的往往是后者。那么如何捕获线程在运行时的异常呢,我们可以使用自定义类实现Thread.UncaughtExceptionH转载 2013-12-02 11:06:10 · 1913 阅读 · 1 评论 -
Android 中Webview 自适应屏幕
项目中用到了WebView。WebView显示的时候就要求显示的内容能够自适应屏幕且显示的内容居中。在网上查了一些资料,主要方法有以下3种:第一种:WebSettings settings = webView.getSettings(); settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); LayoutAl原创 2014-01-09 16:44:13 · 3796 阅读 · 1 评论 -
Android 用getIdentifier()获取资源Id
做项目过程中遇到一个问题,得到图片名称,然后调用图片。直接用R.drawable.?无法调用。查了好多地方才找到了方法,分享给大家,希望有帮助。 主要由两种方法,个人建议第二种。 1. 不把图片放在res/drawable下,而是存放在src某个package中(如:com.drawable.resource),这种情况下的调用方法为: String path = "com/dra原创 2014-01-10 18:19:09 · 978 阅读 · 0 评论 -
一个图片制作ProgressBar
xml布局: <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/iamge_progress" android:layout_c原创 2013-12-26 18:17:16 · 1153 阅读 · 0 评论 -
android textview 自动连接网址及修改默认点击事件
1 修改XML文件即可,android:autoLink="web"<TextView android:id="@+id/text_view" android:layout_width="fill_parent" android:layout_height="wrap_content" android:autoLink="all"原创 2013-12-27 09:58:13 · 2066 阅读 · 0 评论 -
Android中Textview显示带html文本
Textview显示“img”标签,也许看到这里,大家都会想到就是构建ImageGetter,重载一下其 public Drawable getDrawable(String source)方法,获取该路径的图片。例如:final Html.ImageGetter imageGetter = new Html.ImageGetter() { public Drawa转载 2014-01-16 16:42:29 · 2200 阅读 · 0 评论 -
【Android】创建Popwindow弹出菜单
菜单是我们做应用 的时候经常要用到的,像UC等都有,今天也做了个小Demo,用POPWindow实现的。弹出效果主要使用了translate和alpha样式实现POP的主要代码:private void showPop() { ViewGroup menuView = (ViewGroup) getLayoutInflater().inflate( R.layout.gridv原创 2014-02-20 18:32:33 · 1617 阅读 · 0 评论 -
多个Fragment 切换时不重新实例化
在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment: public void switchContent(Fragment fragment) { if(mContent != fragment) { mContent = fragment; mFragmentMan.beginTran原创 2014-02-27 15:09:49 · 2153 阅读 · 0 评论 -
android listView 到上下边界 蓝色或黄色阴影去除方法
在listview中滑动到顶部或者是底部的时候,在默认的情况下,是会有黄色或者蓝色的阴影出现。在不同的版本上解决的方法是不同的,在2.3之前可以在listview的属性中通过设置android:fadingEdge="none"来解决问题,但是在2.3及以上这个是不行的,这里,可以通过代码来设置模式,禁止其阴影的出现,以免影响美观。请看代码:public class MyListV原创 2013-11-08 20:14:47 · 3720 阅读 · 0 评论 -
Android RadioButton背景图片和文字的相对位置
先上效果图,需要把字放在RadioButton上边。xml代码: <RadioButton android:id="@+id/radio_all" android:layout_width="0dp" android:layout_hei原创 2013-11-06 15:01:10 · 6061 阅读 · 0 评论 -
Android广播事件大全
Intent.ACTION_AIRPLANE_MODE_CHANGED;//关闭或打开飞行模式时的广播 Intent.ACTION_BATTERY_CHANGED;//充电状态,或者电池的电量发生变化//电池的充电状态、电荷级别改变,不能通过组建声明接收这个广播,只有通过Context.registerReceiver()注册 Intent.转载 2013-10-26 14:47:00 · 1582 阅读 · 0 评论 -
Android之GridView(九宫图)
最近做项目用到了GridView,查了一些资料和别人的博客,对其有了初步的了解,其中一篇感觉写的不错,做了下上边的例子。GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridV原创 2012-12-02 23:07:56 · 960 阅读 · 0 评论 -
Android软键盘的隐藏与显示
软件盘的本质其实是一个Dialog! InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示。当我们点击输入框时,系统对活动主窗口进行调整,从而为输入法腾出相应的空间,然后将该Dialog显示在底部,或者全屏显示。设置软键盘隐藏的方法:public s原创 2013-01-09 16:34:36 · 1826 阅读 · 0 评论 -
apktool+dex2jar+xjad反编译APK文件
下载这三个工具0、把apktool.jar和apktool.bat放进android SDK的platform-tool文件夹中,这样就可以在命令行中直接敲apktool命令1、先用apltool把APK文件反编译成smali(这步主要是反编译出XML文件) apktool d 源文件.APK 要解压到的文件夹得到这样的目录2、用dex2jar把dex文件转成jar文件转载 2013-06-13 22:03:35 · 2629 阅读 · 0 评论 -
Listview的onItemClickListener无法响应的解决方法
在android开发中,listview是我们应用最多的控件之一。listview不仅仅是用来显示数据,有时候在item中可能需要ImageButton,Button,CheckBox等子控件(也可以说是Button或者Checkable的子类控件),此时这些子控件会将焦点获取到,导致点击item无法响应。这个时候就需要descendantFocusability来解决啦,descendant原创 2013-08-31 15:32:21 · 2670 阅读 · 0 评论 -
Android 仿豌豆荚中可展开的textview
像豌豆荚中介绍app的功能一样,开始只显示2行,当点击更多时,显示所有内容。实现这个功能可以通过TextView.setMaxLines()来实现,开始时设置setMaxLines(2),当点击更多时调用TextView.setLines(Integer.MAX_VALUE);TextView.setMinLines(0);当textview为 android:layout_height="wra原创 2013-09-23 23:03:20 · 3475 阅读 · 1 评论 -
android应用程序中启动或卸载其他apk程序
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用。一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: private void openOtherAPK(String packageName) { Intent resolveIntent = n原创 2013-10-10 15:09:14 · 2635 阅读 · 0 评论 -
android调用安装和静默安装--要root权限
第一种是 通过Intent机制,调出系统安装应用,重新安装应用的话,会保留原应用的数据。String fileName = Environment.getExternalStorageDirectory() + apkName; Uri uri = Uri.fromFile(new File(fileName)); Intent intent = new Intent(Intent原创 2013-10-11 15:30:19 · 1777 阅读 · 0 评论 -
Android的Activity的launchMode与onActivityResult方法的关系
Android的Activity有四种启动模式,分别是standard、singleTop、singleTask、singleInstance。Activity启动模式设置: Activity的四种启动模式: 1. standard 模式启动模式,每次激活Activity时都会创建Activity,并放入任务栈中。 2. single原创 2013-10-24 16:46:11 · 1962 阅读 · 0 评论 -
Android 判断当前网络是否为wifi网络
public static boolean isWifiActive(Context context) { Context context2 = context.getApplicationContext(); ConnectivityManager manager = (ConnectivityManager) context2 .getSystemService(Context原创 2013-10-18 18:29:20 · 1429 阅读 · 0 评论 -
中国国家气象局天气预报信息接口代码引用详细说明与教程
想在自己的android应用中获得当天的天气情况,这该怎么做呢?不用担心。中国国家气象局提供了获取所在城市天气预报信息接口。通过这个接口,我们就可以获取天气信息了。中国国家气象局天气预报接口总共提供了三个:http://www.weather.com.cn/data/sk/101010100.htmlhttp://www.weather.com.cn/data/cityin原创 2014-03-05 17:11:14 · 4711 阅读 · 2 评论 -
Android 获取缓存大小及清除
获取缓存的方法:// 递归 public static long getFileSize(File f) throws Exception// 取得文件夹大小 { long size = 0; File flist[] = f.listFiles(); for (int i = 0; i < flist.length; i++) { if (flist[i].isDirect原创 2014-03-11 18:42:01 · 1490 阅读 · 0 评论 -
Android webview 如何禁止双击缩放
public class MyWebView extends WebView { private long last_time = 0L; public MyWebView(Context context) { super(context); } public MyWebView(Context context, AttributeSet at原创 2015-12-03 16:54:16 · 4065 阅读 · 1 评论 -
Android 禁止ViewPager滑动
今天项目中要用到ViewPager禁止滑动,直接简单粗暴的上代码吧:package com.tao.viewpagerdamo;import android.content.Context;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import android.view.原创 2015-12-26 17:50:41 · 801 阅读 · 0 评论 -
Android ApplicationId 与 PackageName
android中的包名一共有两个作用,一个是作为一个程序的标识(两个程序是否为同一个程序,看它们的包名),一个是在代码中使用,比如导入R文件,或者在manifest中声明如activity时,可以不声明全称,用.xx.Activity就可以,前提是Activity所在的包名的前缀秘你的程序的包名一致。这样下来就会有一个问题,比如我前期包名没起好,想改一下,但是这样一改,你的程序就变成一个新的程原创 2016-07-12 18:03:39 · 1771 阅读 · 0 评论 -
关于android 5.0调用系统相册闪退
今天在做项目的时候发现个问题,用相机上传头像好好的,用相册就会闪退。经过调试发现5.0的和其他版本返回的Uri不一样:onActivityResult中处理的代码如下: Uri uri = data.getData(); if (null != uri) {// ContentResolver resolver =原创 2016-09-22 14:33:25 · 1811 阅读 · 0 评论 -
Android日志记录工具
背景由于前段时间项目增加了些新功能,服务端和APP都可能出这样或那样的问题,有些问题是由于特殊的数据产生的,让测试的同事复现一下却复现不出来,我看自己代码感觉也不是我的问题,希望写接口的同事配合下,对方一口咬定不是他的问题,而且振振有词:“看,刚才测试的就没复现出来!如果是我的问题刚才怎么没出来?”。自信的样子让我却有点不确定了。为了避免以后还这样查(si)找(bi)问(shuai)题(guo),我原创 2017-09-05 11:40:35 · 2945 阅读 · 5 评论 -
工程带有Fastjson或Gson等的第三方包的混淆配置
工程中使用了fastjson,无奈,对工程做混淆的时候总是报错过不去,后来过去了又出现使用fastjson的地方数据不正确的问题,试了好多办法才成功,废话不多说,添加的代码:##---------------Begin: proguard configuration for fastjson ----------#-keepnames class * implements java.io原创 2013-12-04 15:23:02 · 7899 阅读 · 2 评论 -
Android 将Uri转换成File
今天在项目中遇到将返回的Uri类型转换成File。将其写成一个方法:private File uri2File(Uri uri) { File file = null; String[] proj = { MediaStore.Images.Media.DATA }; Cursor actualimagecursor = getActivity().managedQuery(uri原创 2013-07-03 13:51:03 · 18560 阅读 · 4 评论 -
经常使用runOnUiThread(),你真的理解它吗
在Android开发的过程中,主线程主要来完成UI绘制和响应用户的操作,默认情况下,我们大部分的代码都是在主线程 中执行的,因此我们时刻要考虑主线程的情况。我们都知道要开启一个子线程来完成一个耗时操作,以避免阻塞主线程影响 用户体验,甚至ANR。但是子线程执行完要更新UI的时候,我们又必须回到主线程来更新,实现这一功能常用的方法是执行 Activity的runOnUiThread()方法:ru原创 2017-09-06 15:32:17 · 26021 阅读 · 3 评论 -
Facebook开发者创建APP生成KeyHash
背景今天做facebook事件统计的时候需要创建APP,以前创建APP都是填SHA1(如百度地图),微信支付和微博都是提供工具获取, 都很方便。看facebook的文档,也提供了获取的方法: 既然给了方法,那就试一下,居然提示openssl不是内部命令: 步骤1.去下载OpenSSL工具,如果没翻墙不能下载也可以去这里。 2.在C盘根目录下新建一个openssl的文件夹,并将OpenSS原创 2017-09-28 09:59:17 · 5795 阅读 · 5 评论 -
Android 数据库打包随APK发布
有时项目需要自带数据,所以就就把数据都放到一个SQLite的数据库文件中,之后把该文件放到了raw文件夹下面。程序启动的时候把该文件夹拷贝到手机的/data/data/应用程序报名/database文件夹下,之后就直接从这个地方使用了。package com.tao.lovelife.utils;import android.content.Context;import android.原创 2015-10-28 11:24:16 · 3150 阅读 · 0 评论 -
Android应用内语言切换实现
时间因公司业务需要,应用里面有个设置页面,其中有一项“语言切换”功能,就是在使用APP的过程中,动态的去切换APP的语言,具体参照微信设置页面。起先想来是很简单的事情嘛,不就是个简单的资源国际化嘛,strings.xml资源文件一整还不给OK?真正动起手来就真不是这么一回事了,国际化是没问题,但是怎样能更改所有页面的文字资源呢,这是一个问题。下面介绍下网上找的几个方案。一、API欺骗转载 2015-11-03 14:48:55 · 4488 阅读 · 0 评论 -
Android在OnCreate中获取控件的宽度和高度
在Android中,有时需要对控件进行测量,得到的控件宽度和高度可以用来做一些计算。在需要自适应屏幕的情况下,这种计算就显得特别重要;另一方便,由于需求的原因,希望一进入界面后,就能得到控件的宽度和高度。 利用网上转载的那些方法在OnCreate函数中获取到的仍然是0(希望搞技术的能自己验证过再转载),例如Measure方法之后调用getMeasuredWidth的值还是0。 原因是因为当原创 2014-12-06 16:11:29 · 1046 阅读 · 0 评论 -
Android:EditText 多行显示及所有属性(不自动弹出软键盘)
EditText是我们最常用的控件之一,怎么用早就知道了,但是怎么用好,今天就遇到了问题,现在特别总结一下,防止以后再遇到这样的问题<EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="left原创 2013-03-13 18:31:19 · 8007 阅读 · 0 评论 -
Android打开不同类型文件
今天做一个下载的功能,但是不能下载完就结束了,用户是需要打开的。看了一篇博客,感觉不错,转载过来。调用openFile即可。背景介绍:MIME:全称Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务。它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。MIME类型就是设定某种扩展转载 2014-03-20 11:26:07 · 1367 阅读 · 0 评论 -
Android TabActivity中onKeyDown无法响应的解决方法
Android中某个类继承Activity的子类TabActivity时,重载Activity中的public boolean onKeyDown(int keyCode, KeyEvent event)方法时,点击按键时并得不到响应,解决的方法是:重载public boolean dispatchKeyEvent(KeyEvent event)方法,其示例代码如下:原创 2014-05-05 09:54:24 · 2273 阅读 · 0 评论 -
Android SufaceView 背景设置透明
之前没有接触过SurfaceView,现在项目需求用到了,发现SurfaceView在绘制(Canvas画图)的时候背景变黑了。尝试了下在xml将其设置为背景透明,没有起作用。便用了个比较笨的办法,即首先获取程序的背景,然后在绘制surfaceview之前先把背景绘制上去。这个方法实在是很笨。今天看了下文档,发现在代码里设置如下就可以背景透明了。记录下。 mSurfaceVie原创 2014-05-09 16:09:17 · 2186 阅读 · 2 评论