android学习笔记
文章平均质量分 67
流冰8095
只要你知道去哪,全世界都会为你让步!
展开
-
Android屏幕适配问题
Android设备屏幕的尺寸是各式各样的,不过在设计应用时可以分为两大块:3.0之前的版本和3.0之后的版本。这种情况会带来什么问题我们用三个假设来说明一下。1. 假设你的手上有两个4英寸的设备,设备A的分辨率是800×480,设备B的分辨率是1600×960。你在设备A上设计了一个64×64像素的图标,感觉它大小正合适,但放到设备B上的时候,这个图标看上去就只有之前一半大小了。原创 2014-04-08 23:45:57 · 1122 阅读 · 0 评论 -
Android中 判断是平板还是手机
//是平板返回true 不是平板返回falsepublic boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLA原创 2013-10-08 15:21:54 · 1021 阅读 · 0 评论 -
Android中调用Paint的measureText()方法取得字符串显示的宽度值
1public static float GetTextWidth(String text,float Size) { //第一个参数是要计算的字符串,第二个参数是字提大小2 TextPaint FontPaint =new TextPaint();3 FontPaint原创 2013-10-08 15:15:04 · 2784 阅读 · 1 评论 -
Android 操作系统的内存回收机制
Android 是一款基于 Linux 内核,面向移动终端的操作系统。为适应其作为移动平台操作系统的特殊需要,谷歌对其做了特别的设计与优化,使应用程序关闭但不退出,并由操作系统进行进程 的回收管理。本文在 Application Framework 与 Linux 内核两个层次上,以进程为粒度,对 Android 操作系统的进程资源回收机制进行了剖析。读者可以从本文获得对 Android 应用程序原创 2013-10-08 14:29:48 · 1053 阅读 · 0 评论 -
LayoutInflater作用是将layout的xml布局文件实例化为View类对象。
获取LayoutInflater的方法有如下三种:LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);View layout = inflater.inflate(R.layout.main, null);原创 2013-09-16 12:48:46 · 1748 阅读 · 0 评论 -
android在其他线程中访问UI线程的方法
1.Activity.runOnUiThread( Runnable ) 2.View.post( Runnable ) 3.View.postDelayed( Runnable, long ) 4.Hanlder 5.AsyncTask原创 2013-09-11 18:01:28 · 826 阅读 · 0 评论 -
使用Intent 将底层栈里所有的activity都清理掉
可以利用清理历史栈的方法,来巧妙关闭所有activity,首先用一个设置为不可见的activity A来启动程序,这个activity A的作用只是用来垫栈底,只有启动和退出程序才会用到这个activity,而你需要退出的时候,只需要跳转至这个activity A ,并让A finish自己就可以实现关闭所有的activity。 Intent intent = new Intent(原创 2013-09-11 17:45:16 · 2684 阅读 · 1 评论 -
Android中进程的生命周期
进程的生命周期(Processes and lifecycles) Android系统总是尽最大的努力来维持一个应用的进程,但系统的内存不足时就可能需要关闭一些旧的进程了,但是决定关闭哪个进程呢,android系统把所以的进程放进一个重要性树里,最低重要性的进程将会被停止,系统有5种重要性等级,重要性从高到低如下: (1)、前台进程。一个前台进程是当前执行用户请求的进程,如果有如下的一原创 2013-09-11 11:29:19 · 1010 阅读 · 0 评论 -
Android 中Activity的启动方式和Activity在堆栈情况分析
启动方式 下的launchMode属性可以设置四种启动方式: "standard" (the default mode) "singleTop" "singleTask" "singleInstance" 这些不同的方式可以从下面的四点来说: (1)对一个Intent作出回应时哪个task应该去持有这个Activity。 对standard和sin原创 2013-09-11 10:36:08 · 1138 阅读 · 0 评论 -
Android适配所需知识点LayoutParams
LayoutParams继承于Android.View.ViewGroup.LayoutParams. LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去原创 2013-09-11 09:26:52 · 1078 阅读 · 0 评论 -
EditText 在左边加入图片
代码如下: Bitmap bitmap = mWebView.getFavicon(); Drawable drawable = new BitmapDrawable(bitmap); // edit.setCompoundDrawables(drawable, null, null, null); drawable = this.getResourc原创 2013-07-15 10:20:50 · 2880 阅读 · 0 评论 -
onCreate()方法中的参数Bundle savedInstanceState 的意义用法
Activity中有一个名称叫onCreate的方法。该方法是在Activity创建时被系统调用,是一个Activity生命周期的开始。可是有一点容易被忽视,就是onCreate方法的参数saveInsanceState。一般的程序开发中,很少用到这个参数。 onCreate方法的完整定义如下: public void onCreate(Bundle saveInsa原创 2013-07-15 09:49:03 · 22715 阅读 · 2 评论 -
Android中跟Touch事件
Android中跟Touch事件有关的事件有三个: public boolean dispatchTouchEvent(MotionEvent ev):传递Touch事件至target view(可以是自己)。 public boolean onInterceptTouchEvent(MotionEvent ev):在ViewGroup中定义,用于拦截Touch事件的传递。原创 2013-07-08 10:49:24 · 1410 阅读 · 0 评论 -
Android ---android:autoLink属性
URL链接 email 链接 TextView识别链接的方式有两种,一种是自动识别链接和HTML解析链接 自动识别链接: 例子: android:layout_width="fill_parent" android:layout_height="wrap_content"原创 2013-05-18 09:13:41 · 1922 阅读 · 0 评论 -
通过CMD进入Android的SQlite数据库 查看表中数据内容
原创 2013-03-25 17:13:27 · 3226 阅读 · 0 评论 -
NoClassDefFoundError 当你发现即不是类名写错了 也不是配置出问题了 可以考虑下面方法
右击项目工程 Properties ---> Java Build Path ----> order and Export --->选中可以被选中的项 ---->OK ;原创 2013-01-30 16:03:28 · 584 阅读 · 0 评论 -
Android中Bitmap内存优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。 1) 要及时回收Bitmap的内存 Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,And原创 2013-10-09 11:34:49 · 1064 阅读 · 0 评论 -
Android中获取(RAM)总运存大小和可用运存大小
//获取可用运存大小private long getAvailMemory(Context context){ // 获取android当前可用内存大小 ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); Me原创 2013-10-09 09:11:51 · 5826 阅读 · 0 评论 -
Android 一键清理内存(ARM)
public void killProcess(){ ActivityManager activityManger=(ActivityManager) this.getSystemService(ACTIVITY_SERVICE); List list=activityManger.getRunningAppProcesses();//得到正在运行的进程信息 i原创 2013-10-09 09:49:13 · 1857 阅读 · 0 评论 -
Android中handler运行原理
在android中提供了一种异步回调机制Handler,使用它,我们可以在完成一个很长时间的任务后做出相应的通知 handler基本使用: 在主线程中,使用handler很简单,new一个Handler对象实现其handleMessage方法,在handleMessage中提供收到消息后相应的处理方法即可,这里不对handler使用进行详细说明,在看本博文前,读者应原创 2014-04-08 23:36:47 · 1441 阅读 · 0 评论 -
Android HTTPpost和get请求
/** * 发送Post请求 * * @param path * 请求路径 * @param params * 请求参数 * @param encoding * 编码 * @return 服务器返回流 */ public static InputStream send原创 2013-10-23 16:31:45 · 1137 阅读 · 0 评论 -
Android HTTPpost 提交数据到服务器
public void send() { HttpPost request = new HttpPost("http://192.168.1.8:8080/AndroidWeb/InsertServlet"); List parameters = new ArrayList(); BasicNameValuePair im = new BasicNameValuePa原创 2013-10-23 16:18:50 · 1430 阅读 · 0 评论 -
Android两种录音方式MediaRecorder和AudioRecord实现了实时获取音量大小
Android两种录音方式MediaRecorder和AudioRecord实现了实时获取音量大小废话少说 直接上代码:下载地址:http://download.csdn.net/detail/liubin8095/6441745原创 2013-10-23 13:46:49 · 4193 阅读 · 0 评论 -
Android中通过annotation实现java对象和json的转换
第一步:定义一个annotation类@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface JSONValue { public String tag() default "";}第二步:封装转换方法public class JSONConverter原创 2013-10-28 15:01:39 · 1431 阅读 · 0 评论 -
Android开发中使用eclipse中的DDMS对应用的内存检测
eclipse内存监测工具 DDMS --> Heap 无论怎么小心,想完全避免bad code是不可能的,此时就需要一些工具来帮助我们检查代码中是否存在会造成内存泄漏的地方。Android tools中的DDMS就带有一个很不错的内存监测工具Heap(这里我使用eclipse的ADT插件,并以真机为例,在模拟器中的情况类似)。用 Heap监测应用进程使用内存情况的步骤如下:1. 启动e原创 2013-10-25 09:25:58 · 1397 阅读 · 0 评论 -
Android 内存优化
一、 Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间;然而对象的释放是由垃圾回收器来完成的。C/C++中的内存机制是“谁污染,谁治理”,java的就比较人性化了,给我们请了一个专门的清洁工(GC)。 那么GC怎么能够确认某一个对象是不是已经被废原创 2013-10-25 09:00:19 · 1217 阅读 · 0 评论 -
Android SQLite 创建多表及多表查询 事务处理
创建3张表:(不用设主外键)@Override public void onCreate(SQLiteDatabase db) { System.out.println("同时创建3张数据库表"); db.execSQL("CREATE TABLE "+ "test1" +" (test1_id INTEGER PRIMARY KEY AUTOINCREMENT, test原创 2013-10-15 11:16:59 · 8288 阅读 · 0 评论 -
Android中以数据流的形式获取assets文件夹中文件的内容
方法一: try { InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open("update1_2.sql"), "gb2312"); BufferedReader bufReader = new BufferedReader(inputReader);原创 2013-10-15 14:15:20 · 2190 阅读 · 0 评论 -
Android中按比例缩放图片以减少内存消耗 解决oom问题
// decode这个图片并且按比例缩放以减少内存消耗,虚拟机对每张图片的缓存大小也是有限制的 private Bitmap decodeFile(File f) { try { // decode image size BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBou原创 2013-10-14 11:47:17 · 1458 阅读 · 0 评论 -
Android AsyncTask完全解析
总结:AsyncTask 本质是用handler更新界面;在3.0版本以后,它在AsyncTask中是以常量的形式被使用的,因此在整个应用程序中的所有AsyncTask实例都会共用同一个SerialExecutor;默认情况下SerialExecutor模仿的是单一线程池的效果,如果我们快速地启动了很多任务,同一时刻只会有一个线程正在执行,其余的均处于等待状态;如果想同时启动多个任务可以通过原创 2013-10-14 10:43:40 · 1757 阅读 · 0 评论 -
Android软键盘调用及隐藏,以及获得点击软键盘输入的字母信息
在Android提供的EditText中单击的时候,会自动的弹出软键盘,其实对于软键盘的控制我们可以通过InputMethodManager这个类来实现。我们需要控制软键盘的方式就是两种一个是像EditText那样当发生onClick事件的时候出现软键盘,还有就是当打开某个程序的时候自动的弹出软键盘。 调用方法: InputMethodManage原创 2013-10-12 10:28:29 · 1543 阅读 · 0 评论 -
Service生命周期图
Service生命周期原创 2013-09-27 15:35:41 · 759 阅读 · 0 评论 -
在前台运行Service
一个前台的service是被用户强烈关注的从而不会在内存低时被系统杀死.前台service必须在状态栏上提供一个通知,这个通知被放在"正在进行"区域中,这表示这个通知不能被解除,除非服务停止了或者从前台移除了. 例如,一个从service播放音乐的音乐播放器,应被设置为前台运行,因为用户会明确地注意它的运行.在状态栏中的通知可能会显示当前的歌曲并且允许用户启动一个activity来与原创 2013-09-27 15:08:07 · 1053 阅读 · 0 评论 -
Handler的作用
一、Handler的定义:主要接受子线程发送的数据, 并用此数据配合主线程更新UI.解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面中的UI控件,进行事件分发, 比如说, 你要是点击一个 Button, Android会分发事件到Button上,来响应你的操作。 如果此时需要一个耗时的操作,例如: 联网读取数据,或者读取本地较大的一个文原创 2012-12-19 21:40:57 · 753 阅读 · 0 评论 -
Gallery循环滑动
Gallery每次滑动到最后一个的时候,在向后就滑不动了,或者第一个向前的时候,也是不能实现滑动的。这主要是有Gallery的position来决定的。Gallery的position的值在0到getCount()之间,不能超出这样的一个范围。 所以在第一个的时候,position=0,所以不能向前滑动。当在最后一个的时候position=getCount(),所以不能继续向后原创 2012-07-27 09:14:01 · 620 阅读 · 0 评论 -
远程下载音乐为手机铃声核心代码(RingtoneManager与铃声存放路径)
第一步 需判断/sdcard/music/ringtones是否存在文件夹。 File file = new File(/sdcard/music/ringtones); if ( !file.exists() ){ if (file.mkdirs ){ } }else{原创 2012-07-25 10:24:41 · 1457 阅读 · 0 评论 -
音乐播放器、视频播放器、录音、照相、闹钟、铃声设计中的各种方法以及例子总结
多媒体开发 Open Core是Android多媒体开发框架的核心。所有Android平台的音频、视频的采集以及播放都是通过它来实现的。它也被称为PV(Packet Video). Open Core是一个多媒体框架,从宏观上看主要包含两大方面的内容: PVPlayer :提供媒体播放器的功能,完成各种音频(Audio)、视频(Video)流的回放(Playback)功能。 P原创 2011-12-08 17:34:24 · 2052 阅读 · 0 评论 -
Android常用控件总结
Notepad++编写 可以负责粘贴到其中去 看得更清楚。(内容包括了Android中的大部分常用控件及其事件的监听)第一章 1.1 Android中src文件夹包含项目的所有包及其资源文件,res文件夹包含了项目中所有的资源。比如:程序图标(drawable),布局文件(layout),常量(value),音频文件(raw) R.java是在创建项目是自动生成的只读文件,不原创 2011-11-12 18:15:01 · 3478 阅读 · 1 评论 -
SQLite数据库编程详解
Android数据存储第一部分 Android数据库编程 SQLite数据库,专门用于处理数据量较大的数据。SQLite他是一款轻型数据库。其特点: 1.轻量级 SQLite他是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用时只需带上它的一个动态库,就可用使用其全部功能,且动态库尺寸也很小。 2.独立性 SQLite数据库不依赖第原创 2011-11-16 15:24:08 · 1655 阅读 · 0 评论 -
SoundPool&&mediaplayer播放音乐
src.java package wyf.ytl;import java.util.HashMap;//引入HashMap类import android.app.Activity;//引入Activity类import android.content.Context;//引入Context类import android.media.AudioManager;//引入AudioM原创 2011-10-27 01:03:00 · 1867 阅读 · 0 评论