Android Touch事件传递机制 看到的最简单的角度了1、基础知识(1) 所有Touch事件都被封装成了MotionEvent对象,包括Touch的位置、时间、历史记录以及第几个手指(多指触摸)等。(2) 事件类型分为ACTION_DOWN, ACTION_UP, ACTION_MOVE, ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL,每个事件都是以AC
踩坑记录(4)-DiskLruCache需要权限 Volley的ImageLoader里要自己写个缓存,于是上网看了几篇文章,感觉都差不多,就照抄下来,一次成功(android 4.4),效果良好。 后来换了个android 4.2的机器测试就出错了,在下图位置报了一个空指针(其实写了什么并不重要) 最后在 http://stackoverflow.com/questions/14391314/android-getexternalcache
踩坑记录(3) -RecyclerView+Volley照片墙显示图片错位 用Volley的ImageLoader加载图片,放到RecyclerView中显示,最开始是把所有东西一股脑都放到onBindViewHolder里ImageLoader imageLoader = new ImageLoader(MyApplication.getInstance().getRequestQueue(), new BitmapCache());ImageLoader.ImageL
Android 改变顶部状态栏的颜色 版本4.4 1.在style.xml中添加 <item name="android:windowTranslucentStatus" tools:targetApi="kitkat">true</item>2.改变状态栏颜色 在要适配的activity (比如activity_main.xml) 里修改根layout(最底层的标签)的背景色。将跟layout颜色设置成colorPrimaryD
对TCP/IP网络协议的深入浅出归纳 原文 http://www.cnblogs.com/visec479/archive/2014/07/28/3872486.html前段时间做了一个开发,涉及到网络编程,开发过程比较顺利,但任务完成后始终觉得有一些疑惑。主要是因为对网络协议不太熟悉,对一些概念也没弄清楚。后来 我花了一些时间去了解这些网络协议,现在对TCP/IP网络协议有了初步的认识,在这里总结出来,可以梳理一下我对网络协议的理解
实现activity变暗的效果 https://github.com/android-cn/android-discuss/issues/147/** * 调整窗口的透明度 * @param from>=0&&from<=1.0f * @param to>=0&&to<=1.0f * * */ private void dimBackground(final float
整理下前一阵学的排序算法(2) 归并排序和快速排序1. 归并排序原地归并的抽象方法public static void merge(Comparable[] a, int lo, int mid, int hi){ int i = lo, j = mid + 1; for (int k = lo; k <= hi; k++) aux[k] = a[k]; for(int k = lo ; k
View 的事件分发机制 《Android 开发艺术探索》 第三章,暂时看不懂,把感觉重要的地方摘一下。点击事件的分发过程中的三个重要方法:public boolean dispatchTouchEvent(MotionEvent ev)public boolean onInterceptTouchEvent(MotionEvent event)public boolean onTouchEvent(MotionEve
Android 系统架构 应用层(Application)Android 的应用层由运行在 Android 设备上的所有应用程序共同构成(系统预装程序以及第三方应用程序)。 系统预装应用程序包含拨号软件、短信、联系人、邮件客户端、日历、地图以及浏览器等提供基础功能的应用程序构成。第三方应用程序则是基于 Android SDK(Android Software Development Kit)进行开发,并受到框架层 SDK
Android RecyclerView 动画展开item显示详情 stackoverflow上看到这个问题,答主给了个demo http://stackoverflow.com/questions/27446051/recyclerview-animate-item-resize效果如下 res文件 main_activity文件就是一个recyclerview main_item是两个textview 一个标题一个详细信息MainActivity就是加载
Android selector背景选择器的使用详解 在开发应用中,很多情况下要设计listview或button控件的背景,下面总结一下android的selector的用法: 1.在drawable中配置Android的selector。 将如下的XML文件保存成你自己命名的.xml文件(比如item_bg.xml),并将该文件放置在drawable文件中,在系统使用时根据ListView中的列表项的状态来使用相应的背景图片。 代码如下:<
Android SharedPreference.Editor的apply和commit方法异同 在android 中存储数据时经常用SharedPreference, 并且在提交数据时一直用的是Editor的commit方法, 今天无意了看到了系统用了apply,看了方法的介绍, 原来这个方法也是可以提交数据的. apply方法在官方SDK说明如下: Commit your preferences changes back from this Editor to the SharedPre
Android 音量调节方法 Android 程序获取、设置铃声和音量通过程序获取android系统手机的铃声和音量。同样,设置铃声和音量的方法也很简单,如下代码:AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);//通话音量 int max = mAudioManager.getStreamMaxVo
Android 手机屏幕px转dp和dp转px工具类 import android.content.Context;public class DensityUtil { private static float scale; /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpV
Android 获取系统铃声并播放 //获取系统默认铃声的Uri private Uri getSystemDefultRingtoneUri() { return RingtoneManager.getActualDefaultRingtoneUri(this, RingtoneManager.TYPE_RINGTONE); }private void start
Android 震动功能 创建震动工具类 VibratorUtil.javapackage com.techrare.util;import android.app.Activity;import android.app.Service;import android.os.Vibrator;/** * 手机震动工具类 * @author Administrator * */public c
Android 延时执行某任务 3种常用方法:1.线程 new Thread(new Runnable(){ public void run(){ Thread.sleep(XXXX); handler.sendMessage();----告诉主线程执行任务 } }).start 2.延时器 TimerTask task
铃声设置 //打开系统铃声设置Intent intent = newIntent(RingtoneManager.ACTION_RINGTONE_PICKER);//设置铃声类型和titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_RINGTONE);intent.putExtra(Rington
Android 设置铃声 设置各种铃声//打开系统铃声设置Intent intent = newIntent(RingtoneManager.ACTION_RINGTONE_PICKER);//设置铃声类型和titleintent.putExtra(RingtoneManager.EXTRA_RINGTONE_TYPE,RingtoneManager.TYPE_RINGTONE);intent.putExtra
Android 获取屏幕高度和宽度 DisplayMetrics metric = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(metric); int width = metric.widthPixels; // 屏幕宽度(像素) int height = metric.hei