Android开发
lgzaaron
这个作者很懒,什么都没留下…
展开
-
Android项目中引用本地aar文件的方法
随着项目越来越多,代码的复用就变得异常重要,这时候就要进行模块化编程,就是把一些通用的组件或者类库做成单独的模块,其他项目直接进行引用就好。针对Android开发最常见的就是Android Library,在Gradle出现之前引用Android Library的方式也很繁琐,但是有了Gradle一切变得非常简单方便。aar何为aar?大家都知道jar文件把,如果你有一个Andro转载 2017-03-03 14:08:03 · 502 阅读 · 0 评论 -
Android使用fitsSystemWindows属性实现–状态栏【status_bar】各版本适配方案
Android使用fitsSystemWindows属性实现–状态栏【status_bar】各版本适配方案 首先我们看下qq的status bar在各个android版本系统中适配:1.Android5.0以上:半透明(APP 的内容不被上拉到状态) 2.Android4.4以上:全透明(APP 的内容不被上拉到状态) 3.Android4.4以下:不占据sta转载 2016-08-23 13:27:26 · 463 阅读 · 0 评论 -
android:clipToPadding和android:clipChildren
假设我们要做一个效果,界面最顶部是一个ActionBar并且是半透明的,ActionBar下面是一个ListView,在初始状态 下,ListView是top是在ActionBar的bottom位置的,但当ListView滚动的时候可以透过ActionBar看到下面的 ListView的内容。如下面两张图所示:正常态:滚动态:乍一看,不是很简单吗,只原创 2016-08-23 11:44:15 · 234 阅读 · 0 评论 -
系统去掉 Android 4.4.2 的StatusBar和NavigationBar
1. System Bar简介 在Android4.0 (API Level 14)及更高版本中,System Bar由Status Bar和Navigation Bar组成。 在Android的官方网站已经详细讲解了如何Hdie Status Bar和Navigation Bar。 本文化讲述如何在系统中Hide Status Bar和Navigat转载 2016-08-23 11:13:47 · 285 阅读 · 0 评论 -
Android屏幕适配全攻略(最权威的官方适配指导)
Android的屏幕适配一直以来都在折磨着我们这些开发者,本篇文章以Google的官方文档为基础,全面而深入的讲解了Android屏幕适配的原因、重要概念、解决方案及最佳实践,我相信如果你能认真的学习本文,对于Android的屏幕适配,你将有所收获!Android屏幕适配出现的原因重要概念屏幕尺寸屏幕分辨率屏幕像素密度dpdipdpisppxmdpihdpixdpi转载 2016-08-10 23:20:18 · 576 阅读 · 0 评论 -
getResources().getDisplayMetrics().density 的理解
网上别人的代码 用于px和dp相互转换import android.content.Context; public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) {转载 2016-09-12 22:03:43 · 15490 阅读 · 2 评论 -
Android中通过typeface设置字体
Android系统默认支持三种字体,分别为:“sans”, “serif”, “monospace",除此之外还可以使用其他字体文件(*.ttf)方法一:XML中使用android默认字体使用默认的sans字体--> Android:text="Hello,World" Andr转载 2016-09-12 09:44:51 · 383 阅读 · 0 评论 -
Android自定义dialog并实现失去焦点,activity获取焦点的功能
前言:由于在项目中需要用到更新显示动画的需求,所以想到了dialog,自定义dialog不难,网上教程很多,但是在实现dialog背景透明的需求时,遇到了一点问题,网上的一些方法在我的机器上并没有实现,只能曲折中找到了另一个方法实现。虽然有点麻烦,但毕竟效果不错。此方法写在这里,一是和各位分享,二是做个记录,留待以后需求。不说了,上代码:下面是dialog自定义布局文件,是原创 2016-08-31 13:31:08 · 10655 阅读 · 1 评论 -
computeScroll
computeScroll:主要功能是计算拖动的位移量、更新背景、设置要显示的屏幕(setCurrentScreen(mCurrentScreen);)。重写computeScroll()的原因调用startScroll()是不会有滚动效果的,只有在computeScroll()获取滚动情况,做出滚动的响应computeScroll在父控件执行drawChild时,会调用这转载 2016-09-11 23:44:28 · 2174 阅读 · 0 评论 -
android 布局之滑动探究 scrollTo 和 scrollBy 方法使用说明
涉及到滑动,就涉及到VIEW,大家都知道,Android的UI界面都是由一个一个的View以及View的派生类组成,View作为基类,而常用的布局里面的各种布局就是它派生出来的ViewGroup的子类,ViewGroup作为各个组件的容器搭建了整体的UI。以下是android UI的结构示示意图:查看源码[java] view plain copy转载 2016-08-31 10:52:52 · 447 阅读 · 0 评论 -
【移动开发】View的scrollTo()和scrollBy()区别
首先,需要知道的是,View是可以延伸到屏幕之外的,可以想象一下ListVIew或GridView。也就是说View的尺寸可以超过屏幕的尺寸。View的大小就是onDraw()中Canvas画布的大小。Canvas可以做translate()、clipRec()t等变换,可以说Canvas是无边界的。而我们在屏幕上所见到的,只是Canvas的一部分而已。可以调用View的scrollTo()和sc转载 2016-08-31 10:49:15 · 433 阅读 · 0 评论 -
android MotionEvent中getX()和getRawX()的区别
public class Res extends Activity implements View.OnTouchListener { Button btn = null; int x = 0; int y = 0; int rawx = 0; int rawy = 0;转载 2016-08-31 09:21:34 · 277 阅读 · 0 评论 -
RectF Rect用法
一、Canvas类android.graphics.Canvas Canvas类好比手机中的画纸,我们可以在Canvas上画图形或者图像。一般我们用android来绘画的时候,需要四个组成部分: 1、位图:包含像素 2、Canvas画板:包含绘画内容,写入位图 3、初始图形:如Rect、Bitmap、text等 4、Paint:用来描述上面初始图形的颜色和类型等 Can转载 2016-08-30 20:54:10 · 625 阅读 · 0 评论 -
Android 使用SystemBarTint设置状态栏颜色
做项目时,发现APP的状态栏是系统默认的颜色,突然想到,为啥别的APP是自己设置的颜色(和APP本身很相搭),于是也想给自己的APP设置系统状态栏的颜色,更加美美哒。。。 搜了下,发现原来设置状态栏居然有个很高大上的名字(听不懂的都是高大上)——沉浸式状态栏,Android4.4以后开始支持沉浸式状态栏, 继续搜索,发现,有一个很简单的开源项目——SystemBarTint,可以很完美的转载 2016-08-23 14:06:47 · 353 阅读 · 0 评论 -
SystemBarTint的使用(设置半透明状态栏)
1.在系统是4.4以上的系统,包括4.4开始可以设置半透明的状态栏了代码:[html] view plain copyif(VERSION.SDK_INT >= VERSION_CODES.KITKAT) { //透明状态栏转载 2016-08-23 14:18:12 · 840 阅读 · 0 评论 -
Android沉浸式状态栏SystemBarTint的使用方法
什么是沉浸式状态栏Android从4.4开始支持这种显示效果,直接看对比图:从上图可以看到左边淘宝APP最顶部的状态栏背景是黑色的,而右边的360手机助手那个位置不是黑色,就是用了沉浸式状态栏这种效果。SystemBarTint的使用那么如何给应用加上这种效果呢? SystemBarTint是两年以前的一个开源库,现在我们依然可以用它很方便的给应用加上。转载 2016-08-23 14:24:52 · 375 阅读 · 0 评论 -
如何使用Android Studio把自己的Android library分享到jCenter和Maven Central
原文:How to distribute your own Android library through jCenter and Maven Central from Android Studio 如果你想在Android Studio中引入一个library到你的项目,你只需添加如下的一行代码到模块的build.gradle文件中。dependencies { compi转载 2017-03-03 11:51:53 · 434 阅读 · 0 评论 -
Android属性allowBackup安全风险浅析
1.allowBackup安全风险描述Android API Level 8及其以上Android系统提供了为应用程序数据的备份和恢复功能,此功能的开关决定于该应用程序中AndroidManifest.xml文件中的allowBackup属性值[1] ,其属性值默认是True。当allowBackup标志为true时,用户即可通过adb backup和adb restore来进行对应用转载 2017-03-03 10:46:40 · 460 阅读 · 0 评论 -
Android AndroidManifest.xml文件的android:supportsRtl属性详解
转载请注明出处:http://blog.csdn.net/aa464971/article/details/51372204Android交流群:146262062更多开发文章:http://dyhdyh.comAndroid Studio新建工程的AndroidManifest文件里会有一个supportsRtl属性,并且默认是true,那这个属性到底有什么用呢,顾名转载 2017-03-03 10:41:15 · 318 阅读 · 0 评论 -
android官方技术文档翻译——aar 格式
本文译自androd官方技术文档《AAR Format》,原文地址:http://tools.Android.com/tech-docs/new-build-system/aar-format。本文地址:http://blog.csdn.net/maosidiaoxian/article/details/41578499。转载请注明出处。翻译如有错讹,敬请指正。翻译 2017-03-03 10:21:18 · 297 阅读 · 0 评论 -
Android:onNewIntent()触发机制及注意事项
一、onNewIntent()在IntentActivity中重写下列方法:onCreate onStart onRestart onResume onPause onStop onDestroy onNewIntent1、其他应用发Intent,执行下列方法:onCreateonStartonResume发Intent的方法:Uri uri = Uri.pa转载 2016-09-21 21:44:36 · 366 阅读 · 0 评论 -
Android代码混淆之混淆规则
请尊重他人的劳动成果,转载请注明出处:《Android代码混淆技巧》 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆。SDK已经集成了ProGuard工具,开发者可以从SDK目录下的\tools\proguard目录中进行查看。 ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器。它可以检测转载 2016-09-20 10:56:23 · 1097 阅读 · 0 评论 -
内存分析工具 MAT 的使用
1 内存泄漏的排查方法Dalvik Debug Monitor Server (DDMS) 是 ADT插件的一部分,其中有两项功能可用于内存检查 :· heap 查看堆的分配情况· allocation tracker跟踪内存分配情况DDMS 这两项功能有助于找到内存泄漏的操作行为。Eclipse Memory Analysis Tools (MAT)转载 2016-09-22 22:29:07 · 304 阅读 · 0 评论 -
Android Studio使用Lint进行代码检查
Android Studio目前已经更新到1.4版本,它作为Google官方推荐的IDE,功能非常强大,其中提供了一套静态代码分析工具,它可以帮助我们检查项目中存在的问题,让我们更有规范性的开发App。它可以检查出:xml文件中是否存在hardcode硬编码、unused resources没有使用到的资源、probable bug可能的bug等等。那么现在我们来测试使用它看看:Android转载 2016-09-22 21:33:14 · 313 阅读 · 0 评论 -
全局的activity管理
public class ActivityCollector { public static List activities = new ArrayList(); public static void addActivity(Activity activity) { activities.add(activity); } public static void removeAct原创 2016-08-13 21:53:49 · 271 阅读 · 0 评论 -
Fragment提交transaction导致state loss异常
下面自从Honeycomb发布后,下面栈跟踪信息和异常信息已经困扰了StackOverFlow很久了。java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkState翻译 2016-08-13 10:29:52 · 235 阅读 · 0 评论 -
FragmentTransaction的commit和commitAllowingStateLoss的区别
1、什么是FragmentTransaction?使用Fragment时,可以通过用户交互来执行一些动作,比如增加、移除、替换等。所有这些改变构成一个集合,这个集合被叫做一个transaction。可以调用FragmentTransaction中的方法来处理这个transaction,并且可以将transaction存进由activity管理的back stack中,这样用转载 2016-08-13 10:09:36 · 2244 阅读 · 0 评论 -
ViewConfiguration.getScaledTouchSlop () 用法
转自——http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2013/0225/907.html摘要 getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件。 /** * 包含了方法和标准的常量用来设置UI的超时、大小和距离 */ public class ViewConfig转载 2016-09-02 10:37:50 · 373 阅读 · 0 评论 -
Android View中getViewTreeObserver().addOnGlobalLayoutListener()
我们知道在oncreate中View.getWidth和View.getHeight无法获得一个view的高度和宽度,这是因为View组件布局要在onResume回调后完成。所以现在需要使用getViewTreeObserver().addOnGlobalLayoutListener()来获得宽度或者高度。这是获得一个view的宽度和高度的方法之一。OnGlobalLayoutListener 是原创 2016-08-08 20:56:16 · 484 阅读 · 0 评论 -
TextView显示人民币符号¥
这真的是个鸡肋的问题,如果你复制上面的人民币符号到你的TextView中,显示出来的效果是这样的 。网上有很多种复杂的解决方案,什么修改字体啥的,我也是服了,那我还不如去换个图片呢。简单暴力的解决方法,复制下面这个符号:¥ 到你的代码中,就不会了。眼尖的就能看出这两个符号的区别,但由于csdn也识别不出来,配个截图给你们看看,这可是我珍藏的。,一个大一个小。 左边原创 2016-08-30 10:08:05 · 961 阅读 · 0 评论 -
详解Paint的各种set方法
一、前言 我们用set方法来设置画笔的样式,类似于我们挑选画笔画画的过程。由于上面有些方法不支持硬件加速,所以在高版本系统中可能会没有效果。因此,我们首先来看看官方废弃的方法。下图来自:https://developer.android.com/guide/topics/graphics/hardware-accel.html#unsupported当你要使用打叉转载 2016-08-29 22:45:25 · 1267 阅读 · 0 评论 -
Android view中的requestLayout和invalidate方法
requestLayout:当view确定自身已经不再适合现有的区域时(即view的尺寸或者形状发生了变化),该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合调用这个方法,不然会引起很多问题。invalidate原创 2016-07-27 16:56:40 · 346 阅读 · 0 评论 -
Android中自定义控件的步骤
Android开发中难免遇到需要自定义控件的需求,有些是产品的要求在Android标准控件库中没有满足要求的,有些是开发过程中没有代码的可复用,自己定义的。一个好的自定义控件应当和Android本身提供的控件一样,封装了一系列的功能以供开发者使用,不仅具有完备的功能,也需要高效的使用内存和CPU。Android本身提供了一些指标:1. 应当遵守Android标准的规范(命名,可原创 2016-07-27 16:47:00 · 343 阅读 · 0 评论 -
深入理解android自定义属性(AttributeSet,TypedArray)
酝酿了很久,终于可以写篇关于Android自定义属性的文章了,本来这篇文章的名字没有"菜鸟进阶之"的,然后发现这里的内容挺有难度,配得上这5个字了。这里牵扯几个类比如AttributeSet、TypedArray,属性,xml文件等,内容有一点多,所以最重要的是理解每个东西是什么。首先可以参考一文章:http://blog.csdn.net/ff313976/article/det转载 2016-07-27 16:04:43 · 3449 阅读 · 0 评论 -
Android自定义属性:format选项之reference
1. reference:参考某一资源ID(使用另一个资源的id)。 (1)属性定义: background" format = "reference" /> (2)属性使用: An原创 2016-07-27 15:45:06 · 1947 阅读 · 0 评论 -
context.obtainStyledAttributes 研究
我们在自定义View 时,一般都会用到 TypedArray obtainStyledAttributes( AttributeSet set, int[] attrs, int defStyleAttr, int defStyleRes); 对于它的前面2个参数可能大家都知道, 对于后面两个参数一直不明白怎么用。于是今天查了下。转载 2016-07-27 15:38:24 · 516 阅读 · 0 评论 -
android之ConnectivityManager简介,网络连接状态
[java] view plain copy/** * 测试ConnectivityManager * ConnectivityManager主要管理和网络连接相关的操作 * 相关的TelephonyManager则管理和手机、运营商等的相关信息;WifiManager则管理和wifi相关的信息。 * 想访问网络状态,首先得添加权限A原创 2016-07-27 14:44:32 · 1072 阅读 · 0 评论 -
安卓首页图片轮播效果(淘宝、京东首页广告效果)
直奔主题:1、主要原理就是利用定时任务器定时切换ViewPager的页面。2、里面用了一个读取网络图片的插件,做客户端使用本地图片轮播的也很少。先上个效果图:项目代码结构截图:自定义View 的布局文件layout_slideshow.xml:[html] view plai转载 2016-07-26 10:29:11 · 1668 阅读 · 0 评论 -
Android中的Shape使用总结
在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状,首先我们了解一下Shape下面有哪些标签,都代表什么意思:solid:填充android:color指定填充的颜色gradient:渐变android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必转载 2016-07-04 09:48:36 · 239 阅读 · 0 评论 -
(1)ActivityThread分析
1. 入口。以前一直都说Activity的人口是onCreate方法。其实android上一个应用的入口,应该是ActivityThread。和普通的java类一样,入口是一个main方法。public static final void main(String[] args) { SamplingProfilerIntegration.start();转载 2016-07-13 22:55:35 · 193 阅读 · 0 评论