![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android进阶知识
文章平均质量分 79
三年前明媚天
这个作者很懒,什么都没留下…
展开
-
使用PreferenceActivity和PreferenceScreen构建应用的设置
对于每个应用程序来说,都要有一些属于用户自己的设置,满足不同需求。当我们点击menu时,如下: 点击settings时,出现: 那么这样的效果是怎么实现的呢?我只是来个简单介绍,给自己做备忘,也是给大家点思路吧。在android的路上,我们一起努力吧。这里我们仅说第二个图片效果的实现,第一个图片的效果,想必大家都会了,就是使用menu类的几个方法就可以了。转载 2012-11-01 08:59:16 · 645 阅读 · 0 评论 -
android 下获取apk的icon
代码如下:package com.gem.hsx;import java.io.File;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.Method;import android.app.Activity;import androi原创 2012-11-14 11:37:55 · 1844 阅读 · 0 评论 -
Android Service 通知Activity更新界面的方法研究|Service通过Broadcast更新UI
Android的最重要的组件式service和activity,那么在使用的过程中,我们最常遇到的问题是他们之间的通信问题。当然今天我们不研究底层的实现问题,我从上层的应用的如何使用的角度进行研究。首先Activity调用Service这个是比较基础的,它有两种常见的方法;第一, 通过Intent,这个比较简单了,可以指定package name和class name的方式转载 2012-11-15 14:55:33 · 1564 阅读 · 0 评论 -
Android中ExpandableListView的使用
Android中ExpandableListView的使用ExpandableListView是android中可以实现下拉list的一个控件,具体的实现方法如下:首先:在layout的xml文件中定义一个ExpandableListViewview plain copy to clipboard print ? LinearLayout转载 2012-11-16 09:06:11 · 552 阅读 · 0 评论 -
AsyncTask的基础
它是一个执行大开销操作的帮助类。如果你正在开发一个需要访问web服务端的手机应用,很可能你已经使用过它了。其基本思路是:发起一个异步任务,当任务线程执行过程中,显示一个漂亮的进度框,当任务将结果返回到Activity时进度框关闭。但是如果用户决定旋转屏幕,可异步任务还在运行怎么办(屏幕旋转当前的Activity会完成整个一轮生命周期。然后重新创建,回调onCreate()方法。)?转载 2012-11-17 11:11:07 · 557 阅读 · 0 评论 -
android网游开发之socket的简单设计和实现
对于普通应用的网络模块一般使用http文本协议,在android开发中使用http协议比较简单,sdk已经做了很好的封装了,具体使用方法可以参考我的这篇博文。而在游戏开发中,可以结合使用http和socket,当然了http协议底层也是基于tcp协议的。http协议是无连接、无状态的,每次连接只能处理一个请求,然后就断了,而且发一个请求需要附加额外信息(请求行、请求头),每次请求都需要重新建立连接转载 2012-11-17 09:28:37 · 1010 阅读 · 0 评论 -
Android下的多线程(Looper的理解)
在Android下面也有多线程的概念,在C/C++中,子线程可以是一个函数,一般都是一个带有循环的函数,来处理某些数据,优先线程只是一个复杂的运算过程,所以可能不需要while循环,运算完成,函数结束,线程就销毁。对于那些需要控制的线程,一般我们都是和互斥锁相互关联,从而来控制线程的进度,一般我们创建子线程,一种线程是很常见的,那就是带有消息循环的线程。消息循环是一个很有用的线程方式,曾经转载 2012-11-17 10:26:13 · 611 阅读 · 0 评论 -
Dialog 不会触发 onPause
一直以来一直以为Activity中Dialog的出现为触发onPause生命周期函数。其实不然。如果不信的话可以自己写个小demo试试。(例如,在onCreate中create一个Dialog,debug看看会不会蹦到onPause方法中去)按照sdk doc中的说明:1. onPause: Called when the system is about to start resu转载 2012-11-20 11:02:10 · 1674 阅读 · 0 评论 -
android下listview的分页更多加载(效果非常实用)
效果图如下:代码如下:package com.listview.yy;import java.util.List;import java.util.Map;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Mes原创 2013-02-28 15:21:28 · 1191 阅读 · 0 评论 -
android下Path,Canvas,Paint画图工具类的使用-----很好的例子
先说下个人对这个三个类的理解:1.Canvas 意为: 画布 也就是说,你想要画的图形 要画在 我这张布上, 毫无疑问。 该类直接提供了一些常见的图形 画法的 方法, 比如圆形,正方形,长方形,椭圆形。 这些方法可以直接画出这些图形。 但是要画比较复杂的图形,就需要用到Path了。2.Path 意为: 路线,路径 也就是画线用的。 看下面的 详细解释原创 2013-04-12 11:22:35 · 1580 阅读 · 0 评论 -
Android下关于AlertDialog点击 确定或者取消按钮 对话框自动消失的 解决办法
直接看代码,注释详细package com.dialog.oo;import java.lang.reflect.Field;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.原创 2013-04-19 15:24:56 · 4388 阅读 · 0 评论 -
Android优秀开源项目
Android经典的开源项目其实非常多,但是国内的博客总是拿着N年前的一篇复制来复制去,实在是不利于新手学习。今天爬爬把自己熟悉的一些开源项目整理起来,希望能对Android开发同学们有所帮助。另外,如果你有比较好的项目推荐,也烦请在评论里分享出来,我会定期更新博客内容。项目篇:Apollo音乐播放器:就一个播放器,但是实现的很好oschina客户端:oschina转载 2013-05-07 23:26:32 · 997 阅读 · 0 评论 -
listView.removeFooterView(View)报空指针的奇异问题
我们通常在加载数据时,为了省流量不会一次性把数据全部下完,一般是分段下载。分段下载一般会在listview最后面放一个进度条表示正在加载数据,当数据加载完时,我们又要清除它。这时候就要注意了。mLoadingLayout = (FrameLayout) View.inflate(this, R.layout.load, null); listView.addFooterView(mL原创 2013-08-08 20:48:33 · 1281 阅读 · 0 评论 -
Android实现推送方式解决方案
本文介绍在Android中实现推送方式的基础知识及相关解决方案。推送功能在手机开发中应用的场景是越来起来了,不说别的,就我们手机上的新闻客户端就时不j时的推送过来新的消息,很方便的阅读最新的新闻信息。这种推送功能是好的一面,但是也会经常看到很多推送过来的垃圾信息,这就让我们感到厌烦了,关于这个我们就不能多说什么了,毕竟很多商家要做广告。本文就是来探讨下Android中实现推送功能的一些解决方案,也转载 2013-10-11 15:41:36 · 909 阅读 · 0 评论 -
Android Push Notification实现信息推送使用
本文介绍AndroidPn项目实现推送的使用过程。 在上一篇文章中提到在Android中实现推送方式的解决方案,其中一个比较成熟的解决方案便是使用XMPP协议实现。而AndroidPn项目就是使用XMPP协议实现信息推送的一个开源项目。在这里给大家介绍其使用过程。 Apndroid Push Notification的特点: 快速集成:提供一种比C2DM更加快捷的使用方转载 2013-10-11 15:46:28 · 906 阅读 · 0 评论 -
Volley的初步使用
核心使用方法:package com.hsx.volleydemo.adapter;import com.android.volley.toolbox.NetworkImageView;import com.hsx.volleydemo.R;import com.hsx.volleydemo.data.UrlBean;import com.hsx.volleyde原创 2013-10-30 16:28:29 · 1292 阅读 · 0 评论 -
android下使用Fragment实现左侧3级菜单+动画效果
效果图如下:点击每层的item 弹出下一层 核心代码如下:MainActivitypackage com.hsx.view;import com.hsx.fragment.R;import com.hsx.fragments.FirstFragment;import com.hsx.fragments.FirstFragmen原创 2013-07-18 15:10:42 · 2499 阅读 · 2 评论 -
ListView异步加载图片
效果:主要解决listview读取图片时界面无响应的问题,当然这个方法也可以扩展到读取数据库数据等等项目的布局如下:首先加入网络的权限工具类,主要根据url读取图片返回流的方法///////////Request.java public class Request { public static InputS转载 2012-11-13 11:00:25 · 697 阅读 · 0 评论 -
android下listview的优化和listview的异步加载全攻略(非常实用)
效果图如上: 异步加载的核心类:AsyncImageLoaderpackage cn.wangmeng.test;import java.io.IOException;import java.io.InputStream;import java.lang.ref.SoftReference;import java.net.MalformedURLException;原创 2012-11-27 16:35:11 · 964 阅读 · 0 评论 -
PreferenceScreen的使用(非常有用)
在res下建个xml文件夹,建立2个xml文件:preferencescreentest_one.xml<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="using_categories_in_root_screen"原创 2012-11-01 20:19:58 · 2792 阅读 · 0 评论 -
ActionBar的详细使用
ActonBar介绍 ActionBar取代了传统的标题栏(title),其在activity位置就是title原有的位置,在activity的顶部。ActionBar上默认情况下包括了应用(app)的logo,logo的位置在ActionBar的左侧,紧挨在logo右侧的是activity的标题(title)。在ActionBar的右侧,可以是在选项菜单(options menu原创 2012-11-01 19:12:43 · 972 阅读 · 0 评论 -
Android弹出拨号界面和拨打电话实现
需要使用反射机制将ITelephony反射出来进行操作。private void dial(String number) { ClassTelephonyManager> c = TelephonyManager.class; Method getITelephonyMethod = null; try { g转载 2012-11-03 11:28:04 · 766 阅读 · 0 评论 -
获取Android手机中SD卡存储信息
SD卡作为手机的扩展存储设备,在手机中充当硬盘角色,可以让我们手机存放更多的数据以及多媒体等大体积文件。因此查看SD卡的内存就跟我们查看硬盘的剩余空间一样,是我们经常操作的一件事,那么在Android开发中,我们如何能获取SD卡的内存容量呢? 首先,要获取SD卡上面的信息,必须先对SD卡有访问的权限,因此第一件事就是需要添加访问扩展设备的权限。android:nam转载 2012-11-07 10:55:53 · 1052 阅读 · 0 评论 -
android开发文件下载
我们在开发中经常需要从服务器下载文件,下载的内容可能有交换的信息,缓存的图片,程序更新包等。我们使用URLConnection来实现下载。先看几行代码: String urlDownload = ""; urlDownload = "http://www.baidu.com/img/baidu_sylogo1.gif";转载 2012-11-07 14:01:10 · 1021 阅读 · 0 评论 -
android 下载应用 通知栏显示进度 下完之后点击安装 (很实用)
先看效果图: 这是本人的习惯,先上图显示效果,看是否是想要的,再看代码。有图有真相代码:Main:package com.gem.hsx.appupdate;import android.app.Activity;import android.content.Intent;import android.os.Bundl原创 2012-11-08 10:08:03 · 8148 阅读 · 2 评论 -
listview点击的灵异事件(android:descendantFocusability用法简析)
开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子控件(也可以说是Button或者C转载 2012-11-07 10:10:07 · 931 阅读 · 0 评论 -
Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面
概述:每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程。而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。如果在非UI线程直接对UI进行了操作,则会报错:CalledFromWrongThreadException:only the转载 2012-11-09 21:03:46 · 650 阅读 · 0 评论 -
Android异步处理二:使用AsyncTask异步更新UI界面
在《Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面》中,我们使用Thread+Handler的方式实现了异步更新UI界面,这一篇中,我们介绍一种更为简洁的实现方式:使用AsyncTask异步更新UI界面。概述: AsyncTask是在Android SDK 1.5之后推出的一个方便编写后台线程与UI线程交互的辅助类。AsyncTask的内部实现是一个线转载 2012-11-09 21:04:59 · 552 阅读 · 0 评论 -
Android异步处理三:Handler+Looper+MessageQueue深入详解
在《Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面》中,我们讲到使用Thread+Handler的方式来实现界面的更新,其实是在非UI线程发送消息到UI线程,通知UI线程进行界面更新,这一篇我们将深入学习Android线程间通讯的实现原理。概述:Android使用消息机制实现线程间的通信,线程通过Looper建立自己的消息循环,MessageQueue转载 2012-11-09 21:06:33 · 625 阅读 · 0 评论 -
Android异步处理四:AsyncTask的实现原理
在《Android异步处理二:使用AsyncTask异步更新UI界面》一文中,我们介绍了如何使用AsyncTask实现异步下载图片,并且更新图片到UI界面的方法。本篇我们将学习Framework层AsyncTask的实现原理。概述:AsyncTask的本质是一个线程池,所有提交的异步任务都会在这个线程池中的工作线程内执行,当工作线程需要跟UI线程交互时,工作线程会通过向在UI线程创建的Ha转载 2012-11-09 21:07:33 · 600 阅读 · 0 评论 -
Android 文件打开的intent
Android打开文件,具体还是看代码吧,代码最能说明问题。AndroidFileUtil.java[java] view plaincopypublic static Intent openFile(String filePath){ File file = new File(filePath);转载 2012-11-10 14:36:09 · 676 阅读 · 0 评论 -
AVD 4.0.3中出现的灵异事件,期待来者
每次eclipse中重新运行项目,都会报下面这个NULL POINTER ,虽然不影响什么,但是看到LOGCAT里那堆错误信息,很烦人。不知是什么原因导致的??代码片段,双击复制010203040506070809101112131415原创 2012-11-10 17:03:48 · 2316 阅读 · 2 评论 -
android 字体大小自适应
想自适应哪个分辨率的就在你的工程res下添加values-XXXxXXX(如:values-values-1024x600)文件夹,在文件夹里新建dimens.xml文件格式如下: 40sp 布局文件引用: android:layout_width="fill_parent" android:layout_height="w转载 2012-11-12 11:31:55 · 1210 阅读 · 0 评论 -
Android开机自启动程序
背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为 android.intent.action.BOOT_COMPLETED。只要在程序中“捕捉”到这个消息,再启动之即可。记住,Android框架说:Don''t call me, I''ll call you back。我们要做的是做好接收这个消息的准备,而实现转载 2012-11-12 12:53:52 · 678 阅读 · 0 评论 -
Android3.1后Boot_COMPLETED广播不响应的问题
在做Android开发时,很多应用由于各种目的,希望在机器启动时被唤醒,一般的做法是写一个BroadcastReceiver,接收对应的boot action,当然别忘了在Manifest中添加permission "android.permission.RECEIVE_BOOT_COMPLETED“。但是最近在做4.0开发时,有同事声称这个广播接收不到了,同时其他有人又说自己的能接收到,到底是怎转载 2012-11-12 13:11:03 · 661 阅读 · 0 评论 -
android下ListView的奇异异常大集合(持续更新)
使用ListView的addFooterView或者addHeaderView报错或者不知名的异常:at android.widget.ListView.clearRecycledState(ListView.java:522)Caused by: java.lang.NullPointerExceptionat android.widget.ListView.clearR原创 2013-11-14 14:29:04 · 1527 阅读 · 0 评论