- 博客(35)
- 资源 (8)
- 收藏
- 关注
原创 Android四大组件之Activity
Android四大组件之Activity概念 一个Activity是一个引用程序组件,在手机显示屏上提供一个单独显示数据和给与用户交互的界面。窗口通常全屏显示,但是也可以小于屏幕而浮于屏幕。 一个应用程序通常由多个activities组成,他们通常是松耦合关系。通常,一个应用程序中的activity被指定为”main”activity,当第一次启动应用程序的时候呈现给用户的那个activity。
2015-04-23 13:45:09 1025
原创 Android 自定义的圆形变化ProgressBar
Android 自带的ProgressBar中大多比较丑,所以自己定制了一个ProgressBar,可以实现动态的播放,先看截图然后上代码,^_^原谅我不会说别的。先看主程序布局文件<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://sc
2015-04-08 13:42:41 1482
原创 Android Handler使用详解
方法一:(java习惯,在android不推荐使用)刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题new Thread( new Runnable() { public void run() { myView.invalidate(); } }).sta
2015-03-26 12:47:12 733 2
原创 Android仿微信6.0界面加自定义动画切换
相信大家用过微信6.0版本以上都知道界面跟以前的区别,以前是三个滑动tab置于最上方,但是现在是放到最底部,似乎是更加主流了,而且对于个人来说我更加喜欢现在的界面,因为看起来更加清爽、简便,不需要把大部分的东西全部放在menu当中,所以无聊也是为了简单地写写博客,下面写一下这个代码。先说说原理吧,大家可以参照一下我之前写的 Bitmap详解 这篇,里面简单地说了/** * 测试P
2015-02-04 14:57:55 1854
原创 Java 锁
Java 锁定义正确性某个类的行为与其规范完全一致原子性读取-修改-写入作为不可分割的一个动作执行竞态条件当某个计算的正确性取决于多线程的交替执行时序,那么就会发生竞态条件synchronized定义:Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 当两个并发线程访问同一个对象object中的这个synchronized(thi
2015-06-17 16:19:40 681
原创 Java 设计模式之单例模式
Java 设计模式之单例模式设计模式中,最简单不过的就是单例模式。先看看单例模式Singleton模式可以是很简单的,它的全部只需要一个类就可以完成。但是如果在“对象创建的次数以及何时被创建”这两点上较真起来,Singleton模式可以相当的复杂,比头五种模式加起来还复杂,譬如涉及到DCL双锁检测(double checked locking)的讨论、涉及到多个类加载器(ClassLoader)协同
2015-04-08 23:44:18 525
原创 Java多线程之 -- 进程和线程
Java多线程之 – 进程和线程概念进程程序的动态执行过程包括占用的资源(内存、CPU)和线程线程线程是程序中最小的执行单位一个进程有多个线程线程共享进程的资源进程和线程的区分我们可以想象为进程为班级而线程是邦奇中得每一个学生线程之间的交互互斥,类似于每一个学生都为了第一名而你争我让,线程也是,都想抢占CPU的资源同步,当举行运动会的时候,大家都团结一心,彼此共享自己的资源 Thr
2015-04-08 23:19:22 672
原创 Android各类事件大全
onFinishInflate() 当View中所有的子控件 均被映射成xml后触发onMeasure(int, int) 确定所有子元素的大小onLayout(boolean, int, int, int, int) 当View分配所有的子元素的大小和位置时触发onSizeChanged(int, int, int, int) 当view的大小发生变化时触发onD
2015-04-07 16:21:42 907
原创 Android Bitmap、BitmapDrawable、Stream转换整合
package com.soai.imdemo;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.InputStream;import android.graphics.Bitmap;import android.graphics.BitmapFactory;
2015-03-29 18:38:15 625
原创 Android Camera使用指南
要自己写一个相机应用直接使用相机硬件,首先应用需要一个权限设置,在AndroidManifest.xml中加上使用设备相机的权限:为你的应用创建自定义的相机,一般步骤如下: 1.检测相机硬件并获取访问 2.建立一个Preview类:需要一个相机预览的类,继承 SurfaceView 类,并实现SurfaceHolder接口。 3.建立预览的布局。
2015-03-29 15:44:58 1636
原创 Android 音量改变广播
一般监听音量多是监听音量按键的点击,但是滚动音量条的拖动无法监听解决办法:当音量改变的时候系统会发出广播我们只要监听该广播就可以了该广播的action为AudioManager.VOLUME_CHANGED_ACTION但是AudioManager.VOLUME_CHANGED_ACTION被隐藏,所以直接用 "android.media.VOL
2015-03-28 01:01:44 9343 1
原创 Android 广播BroadCast
android实现广播机制有两种方法,一种需要在AndroidManifest.xml中注册,一种不需要注册。先说说需要在AndroidManifest.xml注册的: 第一步,发送广播public class TestActivity extends Activity implements OnClickListener{ /** Called when the ac
2015-03-25 18:22:56 400
原创 android 网络相关的操作类
package vgod.net;import android.app.DownloadManager;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.location.LocationMa
2015-03-25 14:06:59 544
原创 Java Iterable、Iterator、iterator区别
import java.util.*;public class IterableTest implements Iterable{ protected String[] words = new String[]{"123","456","789","0"}; public Iterator iterator(){ return new Iterator(){ private
2015-03-19 21:58:05 474
原创 Java Random、Map测试
import java.util.*;public class RandomTest{ public static void main(String args[]){ Random rand = new Random(47); Map m = new HashMap(); for(int i = 0; i < 100000; i++){ int r = rand.nextI
2015-03-19 21:40:59 675
转载 接口和抽象类有什么区别
接口和抽象类有什么区别 你选择使用接口和抽象类的依据是什么? 接口和抽象类的概念不一样。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.
2015-03-19 20:47:49 351
原创 Android仿京东左右分类
最近看到很多购物商城都是采用了一种布局,左边是list列表右侧是商品的列表所以练练手,其实很简单,左边就是一个ListView,右边是一个Fragment,Fragment的内容可以自己定义,用LinearLayout来关联,使用android:layout_weight来分割大小,看代码吧<LinearLayout xmlns:android="http://schemas.a
2015-03-15 19:36:11 10492 3
转载 ondraw() 和dispatchdraw()的区别
绘制VIew本身的内容,通过调用View.onDraw(canvas)函数实现绘制自己的孩子通过dispatchDraw(canvas)实现View组件的绘制会调用draw(Canvas canvas)方法,draw过程中主要是先画Drawable背景,对 drawable调用setBounds()然后是draw(Canvas c)方法.有点注意的是背景drawable的实际大小会
2015-03-13 23:21:25 590
原创 MeasureSpec的介绍及使用详解
一个MeasureSpec封装了父布局传递给子布局的布局要求,每个MeasureSpec代表了一组宽度和高度的要求。一个MeasureSpec由大小和模式组成。它有三种模式:UNSPECIFIED(未指定),父元素不对子元素施加任何束缚,子元素可以得到任意想要的大小;EXACTLY(完全),父元素决定自元素的确切大小,子元素将被限定在给定的边界里而忽略它本身大小;AT_MOST(至多),子元素至多
2015-03-11 10:53:09 682
原创 View 事件传递
1. 基础知识所有的Touch事件都被封装成MotionEvent对象,包括Touch的位置、时间、历史记录以及几个手指等。时间类型分为ACTION_DOWN、ACTION_UP、ACTION_POINTER_DOWN, ACTION_POINTER_UP, ACTION_CANCEL,每个事件都是以ACTION_DOWN开始ACTION_UP结束。对事件的处理包括三类,分别为传递—dis
2015-03-09 16:47:01 590
原创 Android动画--PropertyAnimation
在Android3.0 之后,Android引入了Property Animation的框架,弥补了一些View Animation的短板,使得我们在Android中能够更好地借助框架去实现更复杂更好的动画效果,从而创造出漂亮的用户体验。 这一篇文章我们先来了解 一下Property Animation的一些用法。上一篇文章说到View Animation智能用在View上面
2015-02-16 08:23:28 447
原创 Android动画--ViewAnimation
Android系统当中存在两种动画框架:1. ViewAnimation(视图动画)1.1 Tween Animation1.2 Frame Animation2. PropertyAnimation(属性动画)先说ViewAnimation简单地说,View Animation主要提供的是平移、旋转、缩放和透明这几种效果。现在看看View Animation怎么定
2015-02-16 08:17:44 473
转载 android动画-Frame Animation
原文出自 http://blog.isming.me/2015/01/28/android-frame-animation/ ,转载请注明出处动画可以在视觉上增加程序的流畅度,我之前对于动画这一块,是会用,但是不全面,这里写下博客,全面梳理一下Android动画方面的知识。当然,关于动画这块,也有很多前人写了很多内容,大家可以去参考。3.0以前,android支持两种动画模式,
2015-02-16 08:13:23 398
原创 Android 屏幕px、dp、sp、屏幕宽高度转换
/** * 系统屏幕的一些操作 * * 创建时间 2014-8-14 * */public final class DensityUtils { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) {
2015-02-12 10:08:09 654
原创 Android 捕获错误日志 UncaughtExceptionHandler
Android系统的“程序异常退出”,给应用的用户体验造成不良影响。为了捕获应用运行时异常并给出友好提示,便可继承UncaughtExceptionHandler类来处理。通过Thread.setDefaultUncaughtExceptionHandler()方法将异常处理类设置到线程上即可。/** * UncaughtExceptionHandler:线程未捕获异常控制器是用来处理未捕获
2015-02-12 09:11:26 716
原创 Java注解--annotation
注解称为元数据,为我们在代码中添加信息提供了一种形式化的方法,使我们可以在稍后摸个时刻非常方便的使用这些数据。——Java编程思想第四版. 注解是众多引入到Java SE5中得语言变化之一。他们可以提供完整的用来描述程序所需的信息,而这些信息是无法使用Java来表达的,注解使得我们可以由编译器来完成测试和验证的格式,存储有关程序的额外信息,属于编译期的类型检查。 定义注解:
2015-02-11 08:54:05 429
原创 Android 仿Morning routine 窗帘打开界面
先想大家推荐一个app叫做Morning routine,是最美应用推荐的,非常好看的一款闹钟工具(可能根据个人喜好而不相同)。这一篇是实现的一个小功能,窗帘样式的View按照国际惯例,代码如下import android.annotation.SuppressLint;import android.content.Context;import android.grap
2015-02-08 15:23:41 1825 2
原创 ViewPagerIndicator系列之--TabIndicator导航界面
之前写过ViewPagerIndicator系列之--引导界面 以及 ViewPagerIndicator系列之--ViewPager+ActionBar+Fragment实现响应式可滑动Tab 大家可以参考,这一篇是在ViewPagerIndicator系列之--引导界面 的基础上修改的,不足之处,欢迎指点先看看界面:对于ViewPager的使用其实很简单的,主要包括
2015-02-08 14:32:18 830
原创 ViewPagerIndicator系列之--ViewPager+ActionBar+Fragment实现响应式可滑动Tab
今天我们要实现的这个效果呢,在Android的应用中十分地常见,我们可以看到下面两张图,无论是系统内置的联系人应用,还是AnyView的阅读器应用,我们总能找到这样的影子,当我们滑动屏幕时,Tab可以相应地完成切换,而当我们点击Tab时,我们的屏幕同样可以完成切换。讲到滑动,我们会立即想到PagerView,讲到ActionBar,我们立即会想到将ActionBar的导航模式。那么,我们今天要做的
2015-02-08 08:54:15 628
原创 ViewPagerIndicator系列之--引导界面
嘿,先插播一下invalidate()、postInvalidate()、requestLayout()的区别吧,这几个在使用到绘制自定义的View时候经常用到对于ViewPager的使用其实很简单的,主要包括以下几步在布局文件当中申明 android.support.v4.view.ViewPager android:id="@+id/guid
2015-02-05 10:35:49 1526
原创 BaseSavedState保存状态
/** * 读取保存状态 * */ @Override public void onRestoreInstanceState(Parcelable state) { SavedState savedState = (SavedState)state; super.onRestoreInstanceState(savedState.
2015-02-05 09:29:34 1137
原创 Android中Invalidate和postInvalidate和requestLayout的区别
requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法。invalidate:View本身调用迫使view重画。是在UI线程自身使用。
2015-02-04 23:41:54 788
原创 Bitmap详解
Android实现圆角图片的简易版: 最初想写这个东西是看到github的圆角图片代码巨长,不好看而且不太实用,基本上很长的代码用到的部分不会很多的。核心代码其实就那么几行。private Bitmap createCircleBitmap(Bitmap source, int min){ final Paint paint = new Paint(); paint.se
2015-02-03 09:26:42 666
转载 Java 日志记录类Logger理解
使用Javalogger的实例,记录编程日志package com.sample;import java.io.File;import java.util.logging.FileHandler;import java.util.logging.Handler;import java.util.logging.Level;import java.util.logging.Logger;
2015-02-02 15:51:30 663
原创 Android 视图绑定实现代码优化
当我们在写Android代码的时候有时候UI界面上的控件太多代码就特别冗余,findViewById() setOnClickListener()... 郁闷看看我一般是怎么做的吧~BindView@Target(ElementType.FIELD)//表示用在字段上@Retention(RetentionPolicy.RUNTIME)//表示生命周期为运行时public @int
2015-01-23 14:17:02 491
Android仿微信6.0,可自定义切换动画
2015-02-09
Android 收缩窗帘式布局
2015-02-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人