Android
abwbw
这个作者很懒,什么都没留下…
展开
-
平台换行符
对于换行符号不同的平台下存在不同的标准。windows : "\r\n"linux/unix : "\r"Mac : "\n"通过使用System.getProperty("liine.separator")可以获取当前平台下的换行符原创 2018-03-24 20:36:09 · 228 阅读 · 0 评论 -
关于自定义View 浮窗闪烁 解决 | View 的性能优化(笔记)
Vlew重写前,需要分离出静态的视图(和动态的视图原创 2014-10-17 12:37:17 · 1133 阅读 · 0 评论 -
ViewGroup.measureChildWithMargins() 学习笔记
VIew 中对 子视图 进行 measure() 操作:原创 2014-10-17 14:22:50 · 9888 阅读 · 0 评论 -
Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析
从前面Android应用程序与SurfaceFlinger服务的关系概述和学习计划和Android系统Surface机制的SurfaceFlinger服务简要介绍和学习计划这两个系列的文章可以知道,每一个在C++层实现的应用程序窗口都需要有一个绘图表面,然后才可以将自己的UI表现出来。这个绘图表面是需要由应用程序进程请求SurfaceFlinger服务来创建的,在SurfaceFlinger服务内转载 2014-10-17 09:42:30 · 706 阅读 · 0 评论 -
Android Layout布局文件里的android:layout_height等属性为什么会不起作用? (ViewGroup 重写注意点)
有的时候,我们配置好的布局文件,在加载完成添加到我们的Activity中后发现,并没有安装我们设置的属性来布局,比为我们设置了android:layout_marginTop="100dip",但是运行程序后发现一点作用都没有,相似的还有layout_height等以android:layout_开头的属性设置都没有作用,这类问题以我们使用Adapter的作为数据源的时候作用居多,因为Adap转载 2014-10-15 17:35:34 · 722 阅读 · 0 评论 -
android:process 使用说明
android:process=":remote":代表在应用程序里,当需要该service时,会自动创建新的进程原创 2014-11-17 10:19:25 · 554 阅读 · 0 评论 -
android 使用Scroller实现缓慢移动 (笔记)
转载请声明:http://bbs.niuzhi.cc/thread-24-1-1.html在Launcher中的Workspace中实现了左右屏幕切换效果,里面就用到了Scroller记录滑动轨迹,实现一种缓慢地向左或向右移动的效果,这里我对这种效果进行总结:我们先看一个例子:点击按钮时红经块会从左边缓慢地移向左右,这个该怎么实现呢 我们先来看一下,Scroller,这个对转载 2014-10-13 14:25:19 · 552 阅读 · 0 评论 -
View、ViewGroup 滚动响应 computeScroll (笔记)
computeScroll:主要功能是计算拖动的位移量、更新背景、设置要显示的屏幕(setCurrentScreen(mCurrentScreen);)。 重写computeScroll()的原因调用startScroll()是不会有滚动效果的,只有在computeScroll()获取滚动情况,做出滚动的响应 computeScroll在父控件执行drawChild时,会调用这转载 2014-10-13 13:55:11 · 675 阅读 · 0 评论 -
数值转换工具 TypedValue ---屏幕单位转换 (笔记 )
TypedValue.applyDimension float gridItemHeight = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 70, getResources().getDisplayMetrics());转载 2014-10-13 10:50:40 · 380 阅读 · 0 评论 -
Android横向滚动屏幕特效分析 (笔记)
一.VelocityTracker 速度追踪器顾名思义这个类的作用主要是追踪用户手指在屏幕上的滑动速度。当你要跟踪一个touch事件的时候,使用obtain()方法得到这个类的实 例,然后 用addMovement(MotionEvent)函数将你接受到的motion event加入到VelocityTracker类实例中。当你使用到速率时,使用computeCurrentVelocity(i转载 2014-10-13 14:21:53 · 585 阅读 · 0 评论 -
declare-styleable:自定义控件的属性 (笔记)
做Android布局是件很享受的事,这得益于他良好的xml方式。使用xml可以快速有效的为软件定义界面。可是有时候我们总感觉官方定义的一些基本组件不够用,自定义组件就不可避免了。那么如何才能做到像官方提供的那些组件一样用xml来定义他的属性呢?现在我们就来讨论一下他的用法。一、在res/values文件下定义一个attrs.xml文件,代码如下:转载 2014-10-13 10:53:15 · 290 阅读 · 0 评论 -
android获得控件在屏幕中的绝对坐标 getLocationInWindow 和 getLocationOnScreen
int[] location = new int[2] ;view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标location [0]--->x坐标,location [1]--->y坐标getLocationOnScr转载 2014-11-04 11:21:12 · 359 阅读 · 0 评论 -
Android getMeasuredHeight()与getHeight()的区别
Added in API level 1 Like getMeasuredHeightAndState() , but only returns the raw width component (that is the result is masked by MEASURED_SIZE_MASK ).ReturnsThe raw measured heig转载 2014-10-20 09:48:14 · 1497 阅读 · 0 评论 -
App路由简记(一)
需求的整理复杂场景带来的烦恼随着产品的迭代,产品之下所产生的场景(Activity)也不断的增加,这些增加带来了更多场景的复杂性。而这些复杂场景的成本也不断叠加到目前我们产品中的直达中。所以为了让自己轻松点,让程序猿的懒惰精神发挥到极致,需要重新对这块进行重新整理。搜索下市场上的方案搜索了解了下已经有的方案,发现实际有详细说明的不多,其中有百度,腾讯上的Deep lin原创 2016-10-23 22:00:13 · 497 阅读 · 0 评论 -
SystemClock 应用
1、System.currentTimeMillis()是一个标准的“墙”时钟(时间和日期),表示从纪元到现在的毫秒数。该墙时钟能够被用户或电话网络(见setCurrentTimeMillis(long))设置,所以该时间可能会向前或向后不可预知地跳越。该时钟应该仅仅被使用在当现实世界的对应的日期和时间是重要的情况,例如一个日历或闹钟应用程序。而间隔时间和经过时间应该使用不同的时钟。如果你使用Sy转载 2014-11-07 16:56:49 · 379 阅读 · 0 评论 -
requestWindowFeature使用详解
requestWindowFeature可以设置的值有: // 1.DEFAULT_FEATURES:系统默认状态,一般不需要指定 // 2.FEATURE_CONTEXT_MENU:启用ContextMenu,默认该项已启用,一般无需指定 // 3.FEATURE_CUSTOM_TITLE:自定义标题。当需要自定义标题时必须指定。如:标题是一个按钮时转载 2014-11-24 16:33:23 · 266 阅读 · 0 评论 -
Http 笔记
1. Http 访问方式 1.1 HttpPost 1) setEntity() //设置请求参数 1.2 HttpGet2. Http 客户端代理 2.1 HttpClient 1) execute( HttpUriRequest request ) //request 为访转载 2014-11-06 15:24:30 · 342 阅读 · 0 评论 -
ListView中使用 setEmptyView() 注意
setEmptyView 使用误区:转载 2014-10-21 13:47:01 · 374 阅读 · 0 评论 -
Material Design
Google I/O 2014 发布的 Material Design 将会成为统一 Android Mobilehttp://www.oschina.net/question/1460912_161085?sort=time&p=2转载 2014-10-21 08:38:10 · 331 阅读 · 0 评论 -
Android view中的requestLayout和invalidate方法
RequestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法。invalidate:View本身调用迫使view重画。转载 2014-10-21 16:40:50 · 304 阅读 · 0 评论 -
LayoutAnimationController
LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果,可以在XML文件中设置,亦可以在Java代码中设置。一种直接在XML文件中设置1. 在res/anim文件夹下新建一个XML文件,名为list_anim_layout.xml,[java] view plaincopy"h转载 2014-10-21 09:46:52 · 434 阅读 · 0 评论 -
Java中Properties类的使用
在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件)。 Properties的构造函数有两个,一个不带参数,一个使用一个Properties对象作为参数。 使用Properties读取.properties文件 test.properties文件如下: #测试环境配置:平台路径配置转载 2014-10-20 17:27:20 · 265 阅读 · 0 评论 -
onDraw 函数未被执行 解决
构造函数中没有this.setWillNotDraw(false)这句话时候onDraw函数始终不被调用 直到添加上之后才可以成功调用onDraw函数仔细查看onDraw函数的说明:转载 2014-10-20 15:34:12 · 823 阅读 · 0 评论 -
滚动控制小记(笔记)
android.support.v4.widget.ScrollerCompat: 滚动控制器原创 2014-10-13 14:35:15 · 2669 阅读 · 0 评论 -
Activity isFinishing()函数使用(笔记)
isFinishing() : 判断this Activity是否finish,自己调用或者某种因素请求finish,经常用在onPause函数里面原创 2014-10-30 14:39:22 · 1378 阅读 · 0 评论 -
onMeasure方法中使用resolveSizeAndState,支持2.2
自定义View一般需要重写onMeasure方法,根据不同的需求onMeasure的实现也不同,如果你的View不是非常特别,都可以参考谷歌官方文档中对onMeasure的实现:1234567891011@Overrideprotected void onMeasure(int widthMeasureSpec转载 2014-10-24 11:14:49 · 1224 阅读 · 0 评论 -
进程优先级优化(避免休眠的时候进程被KILL,主要面向service)(笔记)
绘图的三元素:canvas转载 2014-09-30 11:32:53 · 518 阅读 · 0 评论 -
Android自定义属性,attr format取值类型
1. reference:参考某一资源ID。 (1)属性定义: background" format = "reference" /> (2)属性使用: android:layout_width = "42di转载 2014-11-11 14:58:09 · 346 阅读 · 0 评论 -
Flurry
使用说明:首先要去官方网站上注册(http://www.flurry.com/ 然后点Sign Up)。注册完登录进去。创建一个Application并下载相关SDK。创建完会Flurry会给你一个这个Application的Key。我们需要在代码中将这个key作为参数传入。下面的内容是官方网站上提供的指导:1 Add FlurryAgent.jar to your applica转载 2014-09-29 14:49:51 · 625 阅读 · 0 评论 -
android布局的两个属性dither和tileMode
首先,两个单词的中文意思分别是dither(抖动)和tileMode(平铺)1,先来介绍tileMode(平铺)它的效果类似于 让背景小图不是拉伸而是多个重复(类似于将一张小图设置电脑桌面时的效果)[html] view plaincopyxml version="1.0" encoding="utf-8"?> Li转载 2014-11-10 16:43:42 · 607 阅读 · 0 评论 -
倒计时功能的实现(CountDownTimer)
一个网友说到了CountDownTimer这个类,从名字上面大家就可以看出来,记录下载时间。将后台线程的创建和Handler队列封装成为了一个方便的类调用。查看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。下面是官方给的一个小例子:1new Coun转载 2014-10-24 16:46:05 · 624 阅读 · 0 评论 -
Android自定义进度条
Android原生控件只有横向进度条一种,而且没法变换样式,比如原生rom的样子很丑是吧,当伟大的产品设计要求更换前背景,甚至纵向,甚至圆弧状的,咋办,比如ok,我们开始吧: 一)变换前背景 先来看看progressbar的属性: android:id="@+id/progressBar" style="?转载 2014-11-10 14:59:48 · 341 阅读 · 0 评论 -
TextWatcher EditText 文本监听
对于一些需求,如非法字符限制(例如不允许输入#号,如果输入了#给出错误提示),做成动态判断更方便一些,而且容易扩展; 在Android里使用TextWatcher接口可以很方便的对EditText进行监听;TextWatcher中有3个函数需要重载: public void beforeTextChanged(CharSequence s, int start,转载 2014-10-23 15:30:22 · 408 阅读 · 0 评论 -
android中的Plurals(Quantity Strings)类型
不同的语言对数量的定义有不同的语法规则。例如,在英语中,1个指的是一种特殊情况。其他时候我们说n个。这种单数和复数的情况非常的普通。但其他语言却有明显的区别。Android中设置了0,1,2,"很少",“许多”和“其他”做为数量表述。对于给定的语言和数量,决定使用那种情况是非常的困难和复杂的。Android提供了getQuantityString()来帮助我们决定选择适当的资源。语法:转载 2014-11-10 12:32:15 · 1502 阅读 · 0 评论 -
FragmentPagerAdapter与FragmentStatePagerAdapter区别
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange转载 2014-10-23 11:36:10 · 263 阅读 · 0 评论 -
Android中滑屏初探 - scrollTo 以及 scrollBy方法使用说明
今天给大家介绍下Android中滑屏功能的一个基本实现过程以及原理初探,最后给大家重点讲解View视图中scrollTo 与scrollBy这两个函数的区别 。 首先 ,我们必须明白在Android View视图是没有边界的,Canvas是没有边界的,只不过我们通过绘制特定的View时对 Canvas对象进行了一定的操作,例如 : translate(平移)转载 2014-11-07 17:39:48 · 280 阅读 · 0 评论 -
SparseArray<E>详解
最近编程时,发现一个针对HashMap的一个提示:翻译过来就是:用SparseArray来代替会有更好性能。那我们就来看看源码中SparseArray到底做了哪些事情:一、构造从构造方法我们可以看出,它和一般的List一样,可以预先设置容器大小,默认的大小是10:[java] view plaincopypublic SparseArray(转载 2014-10-24 16:28:58 · 352 阅读 · 0 评论 -
android.view.WindowManager.LayoutParams.flags
FLAG_NOT_TOUCH_MODAL:当窗口可以获得焦点(没有设置 FLAG_NOT_FOCUSALBE 选项)时,仍然将窗口范围之外的点设备事件(鼠标、触摸屏)发送给后面的窗口处理。否则它将独占所有的点设备事件,而不管它们是不是发生在窗口范围内。FLAG_WATCH_OUTSIDE_TOUCH:如果你设置了FLAG_NOT_TOUCH_MODAL,那么当触屏事件发生在窗口之外转载 2014-11-12 16:01:34 · 1095 阅读 · 0 评论 -
MeasureSpec 介绍和使用详解
一个MeasureSpec封装了父布局传递给子布局的布局要求,每个MeasureSpec代表了一组宽度和高度的要求。一个MeasureSpec由大小和模式组成。它有三种模式:UNSPECIFIED(未指定),父元素部队自元素施加任何束缚,子元素可以得到任意想要的大小;EXACTLY(完全),父元素决定自元素的确切大小,子元素将被限定在给定的边界里而忽略它本身大小;AT_MOST(至多),子元素至多转载 2014-10-13 11:02:31 · 321 阅读 · 0 评论 -
AlarmManager类的应用(实现闹钟功能)
1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用,实现闹钟等提示功能2、AlarmManager的常用方法有三个:(1)set(int type,long startTime,PendingIntent pi);该方法用于设置一次性闹钟转载 2014-11-14 17:31:24 · 419 阅读 · 0 评论