
Android
文章平均质量分 74
xu_fu
这个作者很懒,什么都没留下…
展开
-
Android保存图片到系统图库
http://stormzhang.github.io/android/2014/07/24/android-save-image-to-gallery/最近有些用户反映保存图片之后在系统图库找不到保存的图片,遂决定彻底查看并解决下。Adnroid中保存图片的方法可能有如下两种:第一种是自己写方法,如下代码:public static File saveImag转载 2014-09-14 20:10:32 · 65464 阅读 · 46 评论 -
Android layout文件中 '?' 的作用
在Android layout文件中,属性引用资源一般使用@,例如android:textColor="@color/white",但在一些系统文件中我们也可以看到有这样的写法 android:textColor="?android:color/textColor"。@是引用已经定义好的资源,? 用于使用当前主题的标签值。原创 2015-02-24 17:42:46 · 3373 阅读 · 0 评论 -
Android Easing Interpolator——一些动画插值器
Easing Fuction缓动函数实现的一些Android动画插值器Interpolator原创 2015-01-21 23:48:47 · 6241 阅读 · 1 评论 -
Android Volley分析(二)——实现
在Android Volley分析(一)——结构中主要分析了Volley的基本组件和框架结构,组件主要是定义的接口,也就是说我们可以实现这些接口来定制自己的Volley版本,比如NetWork、Cache、Request等等。Android Volley在com.android.volley.toolbox下已经做了这些工作,这里主要对这些实现做些分析。原创 2014-12-28 22:32:37 · 1731 阅读 · 0 评论 -
Android Volley分析(一)——结构
Android Volley的一些分析和总结,Volley的组成结构和处理框架原创 2014-12-20 23:26:41 · 2130 阅读 · 0 评论 -
为Android HorizontalListView添加Scrollbar
最近由于项目需要,要实现一个横向滚动的列表,打算直接用HorizontalScrollView,但是因为没有视图复用,列表项多了之后会占用较多内存,排除;再想到用Gallery,但Gallery有一个自动定位到中央的动画效果,要去除这个效果的工作比较复杂。最后搜了一下找到了这个Android-HorizontalListView,实现了ListView的大部分功能,只是不支持Header、Foot原创 2014-12-07 23:25:03 · 4813 阅读 · 1 评论 -
Android自拍相机应用——图片的镜像翻转
Android系统相机在使用前置摄像头拍照的s原创 2014-04-07 11:06:35 · 31269 阅读 · 6 评论 -
Android 内存泄漏
Andriod应用的堆栈大小在T-Mobile G1上被限制在16MB,对于一个手机这已经是很大的内存了,但对一些开发者来说还是不够。即使你不需要使用这么多的内存空间,你也应该尽可能地节省使用,这样就不至于在其他应用运行的时候将你的杀掉。Android可以在内存中缓存的应用越多,应用间的切换也就越流畅。作为我的一部分工作,我深入了解了Android应用内存泄漏问题,发现大多数都是同一类情况——长时翻译 2014-09-17 17:41:12 · 1618 阅读 · 0 评论 -
Android时钟应用的定时框架分析
Android系统闹钟定时功能原创 2014-09-27 13:27:00 · 7896 阅读 · 2 评论 -
Android墨迹3.0特性介绍效果实现——做一个垂直滚动的Layout
墨迹天气新版的开机动画实现,完成一个上下翻页滚动的控件原创 2014-04-13 10:24:58 · 8141 阅读 · 7 评论 -
Android系统截屏功能提取
Android在4.0版本之后同时按电源键和音量键可以截取当前屏幕,截图后会有一个过渡动画效果,这里提取了将效果这部分提取出来,可以用于应用截图分享功能。截图功能在源码中的位置是com.android.systemui.screenshot,下面有四个类其中主要工作都在GlobalScreenshot中,包括截图后的动画效果、保存到本地和显示到通知栏。为了简单,下面的代码只保留了过原创 2014-09-14 13:04:59 · 35135 阅读 · 27 评论 -
Android Tips
一些Android的小知识原创 2012-08-29 10:02:04 · 1696 阅读 · 0 评论 -
Android VectorDrawable与SVG
VectorDrawableAndroid L开始提供了新的API VectorDrawable 可以使用SVG类型的资源,也就是矢量图,这里对VectorDrawable和SVG做一些简要的介绍。原创 2015-03-01 20:01:53 · 40331 阅读 · 8 评论 -
Android硬件加速总结
Android硬件加速知识总结原创 2015-09-05 19:04:14 · 7338 阅读 · 0 评论 -
Nexus 5 Android5.1 Root
Nexus 5 Android5.1 Root原创 2015-07-03 10:37:10 · 1417 阅读 · 0 评论 -
Android内存分析工具
Android的一些内存知识垃圾回收(GC)垃圾回收包含两个过程:判定阶段,也就是判断哪些对象可以被回收,收集阶段,是指具体的回收策略。判定阶段主要有两种方式引用计数,对象每多一个引用计数加1,少一个引用计数减1,计数为0时就表示这个对象可以被回收了。但是引用计数有个缺点,不能判断循环应用的情况,所以就有了下面的方式根搜索,从一些根对象(GCRoot)开始遍历搜索,如果一个对象无法被搜索到原创 2015-05-14 17:27:40 · 22312 阅读 · 3 评论 -
Android性能优化系列——Understanding Overdraw
过度绘制(Overdraw)是指在一帧的时间内像素被绘制了多次; 理论上一个像素每次只绘制一次是最优的,但是由于层叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,所以对重叠不可见元素的重复绘制会产生额外的计算,需要尽量减少Overdraw的发生。原创 2015-04-13 18:29:11 · 3005 阅读 · 0 评论 -
Android性能优化系列——Profile GPU Rendering
Android开发者选项中提供了Profile GPU Rendering功能,用于在屏幕上实时显示GPU渲染每一帧图像花费的时间(单位:ms)。渲染时间用柱状图表示,上面的绿线代表16ms,也就是要尽量保证所有柱状图都在这条线下方。每一条柱状图都由3部分组成,蓝色、红色和黄色,代表渲染的3个不同的阶段,通过分析这三个阶段的时间就可以找到渲染时的性能瓶颈。原创 2015-04-12 12:54:39 · 14567 阅读 · 2 评论 -
Android性能优化系列——VSYNC
概念VSYNC,vertical synchronizationRefresh Rate 屏幕一秒钟刷新的次数,由硬件决定,单位Hz,一般是60HzFrame Rate GPU在一秒内绘制的帧数,单位fps(Frames per second)具体解释GPU获取图形数据进行绘制,硬件将绘制好的数据呈现在屏幕上,为了使画面在屏幕上流畅的显示,需要保持Frame Rate 在60以上,也就是一次原创 2015-04-11 20:11:10 · 3433 阅读 · 0 评论 -
Android手势事件分发过程分析
Android手势事件传递分析原创 2014-06-21 18:02:54 · 5320 阅读 · 0 评论 -
一种加载动画的实现
一种加载动画效果的实现原创 2015-03-29 12:12:45 · 3665 阅读 · 1 评论 -
Android闪闪发光字体效果
Android实现类似Facebook shimmer加载效果,可以实现字体的闪闪发光原创 2014-04-26 09:56:37 · 20474 阅读 · 9 评论 -
Android文字测量与绘制Tips
在用canvas绘制时,文字测量的一些知识原创 2014-06-21 18:57:23 · 2079 阅读 · 0 评论 -
Android属性动画初步
Android动画系统Android动画系统包括View animation和Property animation,也就是视图动画和属性动画,属性动画有API限制,必须在API 11以上使用,不过有个开源项目NineOldAndroids,实现了对API 11之前版本的支持。视图动画相对于属性动画来说简单一些,只能对view做移动、旋转、缩放等处理,动画发生时改变View在屏幕上的绘制位置原创 2014-07-14 14:40:09 · 2659 阅读 · 2 评论 -
Android图片高斯模糊的一些方法
高斯模糊高斯模糊就是对像素原创 2014-07-13 10:23:52 · 57561 阅读 · 8 评论 -
Android ApiDemo(十二)-- Graphics2
Shapeshape资源可以定义矩形(rectangle)、椭圆(oval)、线段(line)、环形(ring)四种简单二维图形,例如1、椭圆 <stroke android:width="4dp" android:color="#99000000" android:dashWidth="4dp" android:dashGap="2dp" /原创 2012-07-10 22:10:42 · 2299 阅读 · 0 评论 -
Android ApiDemo分析(十)—— ListView的用法
在android开发中,ListView是一个很常用的控件,用于基本的信息展示。这里总结一下ListView的基本用法。Views/Lists1、基本信息显示ListView显示的核心控制在于给它绑定数据与视图的Adapter上,BaseAdapter是所有adapter的基类。ListView可以显示任意的布局形式,一般如果只显示静态的信息,那么使用SDK里的adapter就可以实现原创 2012-06-16 16:28:24 · 1627 阅读 · 0 评论 -
android NDK之Log
android NDK是Google提供的一个本地语言开发包,可以使用c/c++来完成应用的部分功能,如果在windows环境下开发一般需要Cygwin+Eclipse+NDK。NDK开发的一般步骤为:1、编写本地程序,包括本地源文件和jni,生成相应的动态库,即.so文件;2、java层调用jni函数。因为本地程序是以动态库的形式存在的,所以在运行时调试将很不方便,有一种方法是使原创 2012-04-29 20:17:34 · 2777 阅读 · 0 评论 -
Android - View绘图原理总结
Android系统的视图结构的设计也采用了组合模式,即View作为所有图形的基类,Viewgroup对View继承扩展为视图容器类,由此就得到了视图部分的基本结构--树形结构View定义了绘图的基本操作基本操作由三个函数完成:measure()、layout()、draw(),其内部又分别包含了onMeasure()、onLayout()、onDraw()三个子方法。具体操作如下:原创 2012-08-04 19:03:22 · 42542 阅读 · 5 评论 -
Android ApiDemo分析(九)--Graphics
Graphics/AlphaBitmap这个Demo演示了对图片的一些操作以及基本的绘图方式;相关内容:在Android要绘制一个东西,需要四个部分:一个Bitmap用于存储像素值,一个Canvas用于定义绘图操作,一个Paint定义绘图使用的颜色,画笔,画刷等属性,最后一个是要绘制的图形本身(如矩形,线段等)。1、Bitmap - 称作位图,一般位图的文件格式后缀为bmp,作原创 2012-03-10 19:16:08 · 5961 阅读 · 0 评论 -
Android图片素描效果
现在很多相机应用都有图片滤镜,实现各种效果,素描是其中一种,我们怎么实现呢?找到个栗子->使用canvas把照片转换成素描画,作者把原理讲的很清楚了,也就是以下几步:去色,将图片变为灰度图,即黑白图;反相,得到每个像素的补色,具体效果就像照片的底片;高斯模糊,把反相后的像素值平均一下;颜色减淡,将第1步中的像素和第3步得到的像素值进行计算。作者已经将代码托管到了github,但原创 2014-03-18 23:40:51 · 8048 阅读 · 2 评论 -
FloatLabel介绍——Android EditText的一种交互实现
这里介绍一种EditText的交互实现,原创 2014-05-26 15:10:11 · 7710 阅读 · 1 评论 -
实现一个定制的3DListView——第三部分(final)
原文在这里->Making your own 3D list – Part 3 (final part)Adding dynamics为了让我们的listview更加灵活,我们把物理效果的实现委托给一个专门负责滑动物理特性的类,让使用者设置自己想要的效果。很容易想到不同的使用方式会有不同的滑动特性,所以这样做以后我们可以轻松的替换它,还可以在其他view上重用这些物理效果。为了能使用不翻译 2014-03-17 21:47:59 · 2123 阅读 · 1 评论 -
实现一个定制的3DListview——第二部分
Add some padding首先我们要做的是增加一些padding,就是在列表项之间添加一些间隙。这个List本身可以实现但我们这里不用它。左右的padding很容易通过减小项的宽度来产生,就是在我们measure子view的时候,然后在onLayout的时候让他居中。测量的部分像这样:现在我们这样替换ITEM_WIDTH定义了项的宽占总宽的比值这样项的宽就会限制在列表宽的翻译 2014-03-15 13:07:09 · 2207 阅读 · 1 评论 -
Android瀑布流控件——AndroidStaggeredGrid
AndroidStaggeredGrid是etsy实现的一个android瀑布流控件,没有继承ListView和Gridview,而是从更深层的AbsListVew着手实现,项目地址在这里https://github.com/etsy/AndroidStaggeredGrid。特性设置列数,可以分别为横屏和竖屏指定不同的值屏幕方向改变时保持项的添加顺序不改变设置列表项之间的间隔支持原创 2014-03-07 14:59:52 · 26291 阅读 · 18 评论 -
android 学习中遇到的问题及解决方法
1、手势监听关于手势监听,具体过程为:(1)实现一个OnGestureListener的接口并覆写其中的方法;(2)实例化一个GestureDetector对象,并将(1)中的接口传入;(3)将要监听手势动作的View绑定到onTouchListener(),并返回GestureDetector的.onTouchEvent方法;过程如下:mView.setOnTouch原创 2011-12-12 20:21:11 · 13824 阅读 · 1 评论 -
实现一个定制的3D ListView——第一部分
标准的Android ListView支持许多特性,几乎涵盖了你能想到的所有场景。然而,这个Listview的外观太普通了,你可以继承他去做一些改变,但到最后你会发现这很困难。另一个不好的地方缺少华丽的物理特性。因此,如果你想让你的控件更好看,你需要去实现一个自己的view。第一部分会创建一个基本的listview,确实有很多东西需要实现,但是我想先把它实现了,好在后面可以集中处理更有趣的东西翻译 2014-03-10 16:59:30 · 2584 阅读 · 0 评论 -
Android图片下载缓存库picasso解析
picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。picasso使用简单,如下Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);主要有以下一些特性:在adapt原创 2013-11-30 18:35:16 · 78314 阅读 · 7 评论