- 博客(176)
- 收藏
- 关注
转载 用JAVA给JSON进行排版
功能:可以把一行的JSON字符串格式化后进行输出,带有缩进,看起来更加直观。 支持JSON格式的字符串和文件格式化输出。package json;import java.io.ByteArrayInputStream;import java.io.File;import java.io.FileInputStream;import java.io.
2017-10-18 11:16:41 1299
转载 Android之NDK开发
一、NDK产生的背景 Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。在Android SDK首次发布时,Google就宣称其虚拟机Dalvik支持JNI编程方式,也就是第三方应用完全可以通过JNI调用自己的C
2016-10-10 02:50:06 522
转载 Android:onNewIntent()触发机制及注意事项
一、onNewIntent()在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestroy onNewIntent1、其他应用发Intent,执行下列方法:onCreateonStartonResume发Intent的方法:Uri uri
2016-09-29 01:16:59 666
转载 Android“UI适配技能”
1、概述大家在Android开发时,肯定会觉得屏幕适配是个尤其痛苦的事,各种屏幕尺寸适配起来蛋疼无比。如果我们换个角度我们看下这个问题,不知道大家有没有了解过web前端开发,或者说大家对于网页都不陌生吧,其实适配的问题在web页面的设计中理论上也存在,为什么这么说呢?电脑的显示器的分辨率、包括手机分辨率,我敢说分辨率的种类远超过Android设备的分辨率,那么有一个很奇怪的现象:
2016-08-18 01:46:05 564
转载 为什么自定义ViewGroup ondraw方法不会被调用
viewgroup的绘制严格来说是在dispatchDraw中完成,作为一个容器,绘制自己的孩子该通过dispatchDraw(canvas)实现。但是你非要在ondraw中也不会出错。但自定义ViewGroup ondraw方法不会被调用的根本原因是你的ViewGroup中还没有可绘制的内容。 下面是详细解释:一,现象 android:id
2016-07-28 23:05:54 2688
转载 Android不同App中Activity的相互启动
//这些代码是启动另外的一个应用程序的主Activity,当然也可以启动任意一个Activity"code" class="java"> ComponentName componetName = new ComponentName( //这个是另外一个应用程序的包名 "com.poynt.weibo", //这个参数是要启动的Activ
2016-07-11 13:15:13 2419
转载 CardView的学习
CardView继承至FrameLayout类,可以在一个卡片布局中一致性的显示内容,卡片可以包含圆角和阴影。CardView是一个Layout,可以布局其他View。CardView常用属性:card_view:cardElevation 阴影的大小card_view:cardMaxElevation 阴影最大高度card_view:cardBackgroundColor 卡片的
2016-07-08 01:11:56 446
原创 AsyncTask,Handler,EventBus三者的对比
AsyncTask实现的原理和适用的优缺点AsyncTask,是Android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:简单,快捷过程可控 使用的缺点:在使用多个异步操作和并需要进行Ui变更时,就变得复杂起来.
2016-06-04 23:32:17 3676 4
转载 Android事件总线 ( AndroidEventBus ) 框架发布
AndroidEventBus如果你不知道事件总线是什么,那么没有关系,下面我们先来看这么一个场景: 你是否在开发的过程中遇到过想在Activity-B中回调Activity-A中的某个函数,但Activity又不能手动创建对象来设置一个Listener什么的? 你是否想在某个Service中想更新Activity或者Fragment中的界面? 等等之类的组件之间的交互问题……
2016-06-04 23:17:14 467
转载 android AsyncTask介绍
AsyncTask和Handler对比1 ) AsyncTask实现的原理,和适用的优缺点AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncTask,在类中实现异步操作,并提供接口反馈当前异步执行的程度(可以通过接口实现UI进度更新),最后反馈执行的结果给UI主线程.使用的优点:l 简单,快捷l 过程可控 使用的缺点
2016-06-02 16:13:38 428
转载 FragmentTransaction add() ,hide(), detach(), show()
使用add()加入fragment时将触发onAttach(),使用attach()不会触发onAttach()使用replace()替换后会将之前的fragment的view从viewtree中删除触发顺序:detach()->onPause()->onStop()->onDestroyView()attach()->onCreateView()->onActiv
2016-06-01 01:19:53 4863
转载 FragmentPagerAdapter与FragmentStatePagerAdapter区别
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动。不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChange
2016-06-01 00:47:08 383
转载 你真的了解Instant Run吗?
在Instant Run刚出来的时候,反编译源码写过一篇Instant Run原理解析,但过于基于源码,感觉没有写清楚,这周Android Developers推出了Instant Run: An Android Tool Time Deep Dive来讲解Instant Run原理,既然是官方推出的,当然要重点看看,整理了一下,算是对Instant Run有了更全面的了解。完整构建和
2016-05-27 13:32:34 5439
转载 Android开发:shape和selector和layer-list的(详细说明)
和在Android UI设计中经常用到。比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到和。可以这样说,和在美化控件中的作用是至关重要。在看这篇文章之前,可以看下这个小例子:镂空按钮的实现1.Shape简介作用:XML中定义的几何形状位置:res/drawable/文件的名称.xml使用的方法:Jav
2016-05-25 01:49:42 1367
原创 Mvp架构的使用
一:MVP简介1)model:数据层(被赋予了数据获取的职责,例如:数据的获取,数据的存储,数据的变化回调)2)view:视图层 (被赋予了展现数据的职责)3)presenter:主导器(根据业务需要,调用数据层的数据处理逻辑,并在合适的时候,将数据会传给界面,也就是回调给界面)4)contract:契约类(主要用来保存v和p定义的一些接口分,方便程序员使用)二:解决的问题:
2016-05-21 04:03:21 505
转载 Java ConcurrentModificationException异常原因和解决方法
Java ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。 以下是本文目录大纲: 一.Concurr
2016-05-11 16:10:33 756
转载 Android Bluetooth(蓝牙)实例
在很多方面,蓝牙是一种能够发送或接受两个不同的设备之间传输的数据。 Android平台包含了蓝牙框架,使设备以无线方式与其他蓝牙设备进行数据交换的支持。Android提供蓝牙API来执行这些不同的操作。扫描其他蓝牙设备获取配对设备列表连接到通过服务发现其他设备Android提供BluetoothAdapter类蓝牙通信。通过调用创建的对象的静态方法g
2016-05-05 21:32:11 1758 1
转载 如何在android style文件中使用自定义属性
前几天我在项目中遇到了这样一个问题:我为项目编写了一个自定义控件,这个控件会被大量复用,所以我准备在style.xml文件中定义一个style来减少重复xml布局内容的编写,但是里面有一个自定义的控件属性,问题出现在这里,虽然自定义属性在layout布局xml中可以使用正常,但是却无法在style中定义,本来这个控件是大量服用的,style也是为了复用减少xml内容写的,我可以把自定义属性内容直接
2016-05-04 21:01:11 1550
原创 关于使用v4.app.Fragment,出现“java.lang.VerifyError:”
本人的项目中定义了一个:switchFragment(Fragment fragment),其中参数列表的中的Fragment是属于v4.app.Fragment中的类;我创建了一个自定义的Fragment : public class DisplayFragment extends Fragment {}如果不在类定义中显示书写:public Displa
2016-05-04 10:07:07 1268
转载 FragmentActivity和Activity的具体区别在哪里
fragment是3.0以后的东西,为了在低版本中使用fragment就要用到android-support-v4.jar兼容包,而fragmentActivity就是这个兼容包里面的,它提供了操作fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样。下面是API中的原话:FragmentActivity is a special activity provided
2016-04-25 12:08:36 652
转载 onConfigurationChanged的作用
API原文说明:android:configChangesLists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut down and restarted by default, bu
2016-04-25 11:22:04 808
转载 Android利用canvas画各种图形 及Paint用法
1、首先说一下canvas类:Class OverviewThe Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into
2016-04-23 01:47:30 564
转载 android 如何打包自定义控件
设计自定义的控件对android开发人员来说,是家常便饭了,但是多次做项目的经验证明了一个道理,自定义的控件,可以在其他项目中,多次使用,所以接下来我们来介绍2种常用的打包方式,并讨论他们的利于病。 我们可以假设想要自定义一个改变文字显示的button(纯属假设,这样简单的功能其实也用不着自定义) 首先写好布局文件mybutton.xml ?
2016-04-22 10:53:48 626
转载 View的简介
认识一个新的事物,首先我们从概念上讲,我们需要知道,这个事物 是什么,这个事物有什么用途?对应到自定义View 上,首先我们要搞明白 View 的定义以及工作原理。 1.View是什么? View是屏幕上的一块矩形区域,它负责用来显示一个区域,并且响应这个区域内的事件。可以说,手机屏幕上的任意一部分看的见得地方都是View,它很常见,比如 TextView 、ImageV
2016-04-21 15:08:01 671
转载 Android自定义属性,format详解
1. reference:参考某一资源ID。 (1)属性定义: background" format = "reference" /> (2)属性使用: android:layout
2016-04-21 11:05:03 396
原创 PopupWindow,不消失
// 如果不设置PopupWindow的背景,无论是点击外部区域还是Back键都无法dismiss弹框 // 我觉得这里是API的一个bug popupWindow.setBackgroundDrawable(getResources().getDrawable( R.drawable.selectmenu_bg_downward))
2016-04-20 20:49:12 587
转载 解决在onCreate()过程中获取View的width和Height为0的4种方法
很经常当我们动态创建某些View时,需要通过获取他们的width和height来确定别的view的布局,但是在onCreate()获取view的width和height会得到0.view.getWidth()和view.getHeight()为0的根本原因是控件还没有完成绘制,你必须等待系统将绘制完View时,才能获得。这种情况当你需要使用动态布局(使用wrap_content或match_par
2016-04-20 20:33:36 351
原创 Fragment的生命周期,以及各个回调函数
onAttach()onCreate()onCreateView()onViewCreate()onActivityCreate()onStart()onResume()onPause()onStop()onDestoryViewonDestory()onDettach()
2016-04-16 10:23:03 1112
转载 ViewPager 如何得到当前的Fragment (使用FragmentPagerAdapter)
使用FragmentPagerAdapter时,难免要在MainActivity 和 当前显示的Fragment间传递数据。但是FragmentPagerAdapter并没有给我们提供类似getCurrentFragment一类的API。通过FragmentPagerAdapter源码,发现每次Fragment切换都会调用到FragmentPagerAdapter.setPrimaryItem
2016-04-13 14:50:43 1141
原创 Thread.isAlive()
Alive,顾名思义,它表示线程当前是否为可用状态,如果线程已经启动,并且当前没有任何异常的话,则返回true,否则为falseThread.isAlive():顾名思义,是表示当前线程时候为可用状态,即是否已经在启动,并且在运行的状态;
2016-04-12 20:32:27 8030
转载 Thread的run()与start()的区别
java的线程是通过java.lang.Thread类来实现的。VM启动时会有一个由主方法所定义的线程。可以通过创建Thread的实例来创建新的线程。每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方法run()称为线程体。通过调用Thread类的start()方法来启动一个线程。在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。
2016-04-11 16:11:07 332
转载 Android广播集合
StringADD_SHORTCUT_ACTION动作:在系统中添加一个快捷方式。."android.intent.action.ADD_SHORTCUT"StringALL_APPS_ACTION动作:列举所有可用的应用。输入:无。"android.intent.action.ALL_APPS"StringALTERNATIVE_CATEG
2016-04-02 15:42:03 349
转载 android 监听系统时区变化,日期变化,时间变化
1. 监听时区变化:配置: private static final String ACTION_TIMEZONE_CHANGED = Intent.ACTION_TIMEZONE_CHANGED;@Override public void onRec
2016-04-02 15:34:52 11371
转载 Android多国语言的value文件夹命名方式
在res目錄下建立不同名稱的values文件來調用不同的語言包Values文件匯總如下:中文(中國):values-zh-rCN中文(台灣):values-zh-rTW中文(香港):values-zh-rHK英語(美國):values-en-rUS英語(英國):values-en-rGB英文(澳大利亞):values-en-rAU英文(加拿大):values-en-rC
2016-04-02 15:16:24 580
转载 Android开发之网络通讯详解
真正的才智是刚毅的志向。 —— 拿破仑目前的App如果没有使用到网络技术,仅仅依靠本地是很难提升自己App的用户量的,21世纪是互联网时代,网络技术已经融入并改变了我们的生活。想象一下假如一周没有网络供你使用,你是不是有跟这个世界脱节了的感觉,哈哈,没有错,网络是如此的重要,因此我们就需要花点时间好好学习下这门技术。如有谬误,欢迎批评指正,如有疑
2016-04-02 02:10:20 904
转载 android 权限明细
访问登记属性android.permission.ACCESS_CHECKIN_PROPERTIES ,读取或写入登记check-in数据库属性表的权限获取错略位置android.permission.ACCESS_COARSE_LOCATION,通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米获取精确位置
2016-03-28 16:09:37 792
转载 Android 系统属性SystemProperty分析
Android System Property一 System Property 代码中大量存在:SystemProperties.set()/SystemProperties.get();通过这两个接口可以对系统的属性进行读取/设置,顾名思义系统属性,肯定对整个系统全局共享。通常程序的执行以进程为单位各自相互独立,如何实现全局共享呢?System Propert
2016-03-26 14:35:26 523
转载 Andriod-NotificationManager
下面来谈谈notification,这个notification一般用在电话,短信,邮件,闹钟铃声,在手机的状态栏上就会出现一个小图标,提示用户处理这个通知,这时手从上方滑动状态栏就可以展开并处理这个快讯。已添加的Notification.Builder,使其更容易构建通知。notification是一种让你的应用程序在没有开启情况下或在后台运行警示用户。它是看不见的程序组件(Broadcast
2016-03-23 02:03:47 483
转载 Android基础和运行机制
Android应用程序是用Java语言写的,通过aapt工具把应用程序所需要的任何数据、资源文件打包成apk文件,这个文件是一个将应用安装到手机上的一个载体。每个Android应用程序存在于不同的世界: (1)默认的,每个应用在他自己的Linux进程中运行,当应用中的任何代码需要执行时Android就启动相应的进程,当不需要执行时并且系统资源被其他应用请求时android就关闭相
2016-03-23 01:10:27 349
转载 android的消息处理机制(图+源码分析)——Looper,Handler,Message
作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被g
2016-03-22 11:56:37 240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人