Android
文章平均质量分 56
amoshcxy
这个作者很懒,什么都没留下…
展开
-
android基础知识之 - Fragment
android基础知识之 - Fragment1.1 碎片的简单用法1.2 动态添加碎片1.3 在碎片中模拟返回栈1.4 Fragment和Activity之间进行通信1.5 Fragment的生命周期android基础知识之 - Fragment1.1 碎片的简单用法需求:在一个Activity当中添加两个碎片,并让这两个碎片平分活动空间最终...原创 2018-05-11 15:22:03 · 313 阅读 · 0 评论 -
Android View api - scrollTo(),scrollBy(),getScrollX(), getScrollY()
概述scrollTo(),scrollBy()用于实现画布的滑动,相当于图画向反方向滑动。理解scrollTo(),scrollBy()的关键点:滑动的是画布,图画的位置保持不变,原点(0,0)是画布发生滑动前右上角位置。详解scrollTo()源码解析/** * Set the scrolled position of your view. This will cause a call to原创 2017-08-15 15:04:48 · 297 阅读 · 0 评论 -
Android Activity api 详解 - runOnUiThread
概述android规定不能在子线程中对ui进行操作,但开发中经常会遇到子线程经过一些逻辑操作之后要马上对ui进行操作的情况,传统方法是执行Handler,使执行进程由子线程进入主线程中,然后就可以对ui进行操作:mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(V原创 2017-08-14 19:05:32 · 1977 阅读 · 0 评论 -
Android View api 详解-LocationInWindow,getLocationOnScreen,getGlobalVisibleRect,getLocalVisibleRect
概述View 是很多控件的父类,因此掌握了 View api 有助于掌握其它控件。点击查看 View 的官方 apigetLeft , getTop, getBottom, getRightView 在父 View中的相对位置,单位px 注意:以上方法在OnCreate方法中调用,都会返回0,这是因为View还未加载完毕;本文中点击计算之后才开始获取View的getLeft , getTop, g原创 2017-08-14 17:08:52 · 2020 阅读 · 1 评论 -
Android View api 详解 - getLeft , getTop, getBottom, getRight
概述掌握getLeft , getTop, getBottom, getRight的关键点:他们的取值是相对于父View的相对位置,单位是dx 注意:以上方法在OnCreate方法中调用,都会返回0,这是因为View还未加载完毕;本文点击计算之后才开始获取View的getLeft , getTop, getBottom, getRight值。源码点击此处下载原创 2017-08-14 17:48:35 · 640 阅读 · 0 评论 -
Android setContentView() 详解
概述在Acitivty中setContentView()用来设置布局文件,那么布局文件是怎样添加进窗口的呢?本文从源码入手进行解析。源码解析源码开始Acitivty中setContentView() 这个不用解释 进入setContentView方法@Overridepublic void setContentView(@LayoutRes int layoutResID) { g原创 2017-08-21 14:30:55 · 3189 阅读 · 0 评论 -
RecyclerView 和 ListView 使用对比分析
这篇文章主要是向大家介绍 RecyclerView 和 ListView 的使用对比,文章主要包括以下几点的内容:RecyclerView 和 ListView 布局效果的对比RecyclerView 和 ListView 一些常用的功能 和 API 的对比RecyclerView 和 ListView 在 Android L 引入嵌套滚动机制之后的对比布局效果对比作为一枚控件,要引起开发者转载 2017-08-11 18:16:39 · 348 阅读 · 0 评论 -
Android AppCompat 库详解
概述AppCompat:为API 7及以上的设备提供了一个一致的Action Bar。 在版本21的修订中,它承担了新的职责:带来了material color palette、控件着色、Toolbar支持,还有更多支持所有API 7+的设备。单从ActionBarActivity名字上看是体现不出它全部功能的。点击查看Toolbar详解在此版本中,ActionBarActivity已经过时了,新的原创 2017-08-18 15:54:53 · 11402 阅读 · 0 评论 -
Android Toolbar详解-实现Material Design 风格的导航栏
初识 ToolbarToolbar 是在 Android 5.0 开始推出的一个 Material Design 风格的导航控件 ,Google 非常推荐大家使用 Toolbar 来作为Android客户端的导航栏,以此来取代之前的 Actionbar 。与 Actionbar 相比,Toolbar 明显要灵活的多。它不像 Actionbar 一样,一定要固定在Activity的顶部,而是可以放到界转载 2017-08-09 14:43:16 · 1276 阅读 · 0 评论 -
Android Translucent System Bar 开发详解-实现沉浸式通知栏(通知栏与导航栏颜色相同)
先看对比图非沉浸式通知栏 Android 4.4开始,引入了Translucent System Bar的系特性,用于弥补系统通知栏突兀之处。 沉浸式通知栏1 沉浸式通知栏2 沉浸式通知栏看起来效果更好只需四步完成沉浸式通知栏1 在values、values-v19、values-v21的style.xml都设置一个 Translucent System Bar 风格的Theme转载 2017-08-08 11:36:51 · 598 阅读 · 0 评论 -
Android ConstraintLayout详解-使用可视化的方式来编写界面
本篇文章的主题是ConstraintLayout。其实ConstraintLayout是Android Studio 2.2中主要的新增功能之一,也是Google在去年的I/O大会上重点宣传的一个功能。 在传统的android开发当中,界面基本都是靠编写XML代码完成的,虽然Android Studio也支持可视化的方式来编写界面,但是操作起来并不方便,我们也一直都不推荐使用可视化的方式来编写An转载 2017-08-08 19:54:44 · 3682 阅读 · 0 评论 -
Android NavigationDrawer 开发详解-实现侧滑效果
NavigationDrawer 简介NavigationDrawer 是 Google 在 Material Design 中推出的一种侧滑导航栏设计风格。说起来可能很抽象,我们直接来看看 网易云音乐 的侧滑导航栏效果Google 为了支持这样的导航效果,推出一个新控件 —— DrawerLayout 。而在 DrawerLayout 没诞生之前,需求中需要实现侧滑导航效果时,我们必然会选择去选择转载 2017-08-09 16:39:53 · 943 阅读 · 0 评论 -
Android Paint,Canvas api 详解
概述我们通过在画布上绘画进行类比,如下:Canvas:相当于画布,Bitmap提供内存,绘的画会保存在Bitmap中。 Paint:相当于画笔。有了画笔和画笔我们就可以绘画了。Paint 类常用方法设置颜色/** * 参数一:Android内部定义的有Color类包含了一些常见颜色定义 * Color.RED 或者 getResources().getColor(android.R.color原创 2017-08-16 15:21:57 · 1505 阅读 · 0 评论 -
android 随笔
一 android基本架构1 架构图直观2 架构详解21 Linux Kernel22 Android Runtime23 Libraries24 Application Framework25 Applications3 总结二 android dialog三 图片1 使用 MediaStoreImagesMediagetBitmap从Uri中获得bitmap以及其缺陷与优化原创 2017-05-17 10:47:13 · 4338 阅读 · 1 评论 -
欢迎使用CSDN-markdown编辑器
一 android基本架构1-1 架构图直观1-2 架构详解1-2-1 Linux Kernel1-2-2 Android Runtime1-2-3 Libraries1-2-4 Application Framework1-2-5 Applications1-3 总结二 android dialog三 图片3-1 使用 MediaStoreImagesMediagetBitm原创 2017-05-17 10:32:48 · 2185 阅读 · 1 评论 -
Android 6.0 动态权限申请详解
1.介绍Runtime Permissions官方说明Android 6.0之前,权限在应用安装过程中只询问一次,以列表的形式展现给用户,然而大多数用户并不会注意到这些,直接就下一步了,应用安装成功后就会被赋予清单文件中的所有权限,应用就可以在用户不知情的情况下进行非法操作(比如偷偷的上传用户数据)。Android 6.0版本中运行时权限的出现解决的这一问题,一些高危权限会在应用的运行过程中动态申请原创 2016-11-01 14:44:18 · 1705 阅读 · 0 评论 -
android 自定义View、SurfaceView对比
概述SurfaceView允许在子线程中绘图,View只能在主线程中执行绘图。SurfaceView放在最底层的视图层中,其它视图层都在它上面,而且它不能是透明的。它执行动画的效率比View高,而且你可以控制帧数。因为它的定义和使用比View复杂,占用的资源也比较多,除非使用View不能完成,再用SurfaceView否则最好用View就可以。(贪吃蛇,俄罗斯方块,棋牌类这种帧数比较低的可以原创 2017-08-22 15:19:15 · 946 阅读 · 1 评论 -
Android资源文件夹下面values/style.xml、values-v19/style.xml、values-v21/style.xml主题调用规则
概述values-v19/style.xml—对应api19+手机型号在此调用。 values-v21/style.xml—对应api21+手机型号在此调用。 values/style.xml—对应values-v19和values-v21的style.xml中都没有对应主题时默认在此调用。关注点以主题AppTheme为例: values-v19/style.xml或values-v21/s原创 2017-09-12 11:21:25 · 14033 阅读 · 0 评论 -
Eclipse Android NDK入门
1. 官网下载Android-NDK2. Android-NDK环境配置3. Android-NDK导入例子4. Android-NDK配置模拟器5. 开发第一个ndk项目6. Android-mk相关概念介绍7. eclipse配置ndk环境和打印log信息8. jni交互处理之字符串处理9. jni交互处理之数组处理10. JNI的交互处理之eclipse开发工具配置上...原创 2017-12-11 19:51:14 · 503 阅读 · 0 评论 -
AS通过Cmake JNI方式调用OpenCV C++接口和调用OpenCV Java接口混合开发基础
JniOpencv环境配置一、准备开发包二、修改jniLibs的目录三、准备库四、配置CPU平台架构类型五、如果是子项目配置OpenCV,在主项目的bulid.grale中要根据平台添加一个增强图片亮度的小DemoOpenCV4Android环境配置分别通过opencv的c++接口和java接口实现图片二值化操作opencv c++二值化opencv java二值化...原创 2018-03-22 12:08:52 · 2277 阅读 · 1 评论 -
AS CMake NDK开发
向现有项目添加 CC 代码官方文档更新版用 javap 打印 Jni 方法签名AS 配置打印 logJNI 调用静态方法JNI调用java实例方法NDK常见的异常引申阅读向现有项目添加 C/C++ 代码(官方文档更新版)官方指南: Guide:向您的项目添加 C 和 C++ 代码用 AS 从头创建一个支持jni的项目,参考上面的文档即可;向现有项目添加原创 2018-01-03 16:18:52 · 1260 阅读 · 0 评论 -
数据存储全方案--详解持久化技术
文件存储1 将数据存储到文件中2 从文件中读取数据SharedPreferences 存储1 将数据存储到 SharedPreferences 中2 从 SharedPreferences 中读取数据持久化技术提供了一种机制可以让数据在瞬时状态和持久化状态之间进行转换。Android中的数据持久化技术主要有: 1. 文件存储 2. SharedPreference 存储 3. 数据库原创 2017-12-22 21:48:30 · 749 阅读 · 0 评论 -
IntentFilter匹配规则-交朋友
作用匹配规则从actioncategorydata来说从Intent与intent-filter的匹配来说action匹配规则category的匹配规则data的匹配规则作用IntentFilter匹配规则用于Activity隐式调用,IntentFilter要考虑的匹配信息有:action、category、data。匹配规则从action、category、data来说只有一个Int原创 2017-11-22 18:14:51 · 280 阅读 · 0 评论 -
Activity带参返回要注意的点
我们通常会使用startActivityForResult()、onActivityResult()和setResult()来完成Acitvity间参数传递以及带参返回。 这里面有一点需要注意,就是当返回数据为空时的处理,如果不处理在特殊情况下会导致Crash。@Override protected void onActivityResult(int requestCode, int re原创 2017-11-13 15:21:32 · 339 阅读 · 0 评论 -
通知Notification遇到的坑
我们知道当使用Notification通知时,为了兼容低版本系统会使用support-v4库中提供的NotificationCompat类来构造Notification对象,如:NotificationManager manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);Intent intent原创 2017-11-06 18:52:08 · 602 阅读 · 0 评论 -
ListView遇到的坑
1. adapter.notifyDataSetChanged();adapter中的数据有变化时必须第一时间使用adapter.notifyDataSetChanged();更新UI展示的数据。2. adapter.notifyDataSetInvalidated();adapter的定义形式一般是:OrderApproveAdapter adapter = new OrderApproveAda原创 2017-10-19 09:09:52 · 841 阅读 · 0 评论 -
半透明背景Activity实现AlertDialog弹窗效果
用半透明背景Activity实现AlertDialog弹窗效果的原因是,用小米手机测试项目时,发现工具类中的AlertDialog弹窗无法弹出,查阅资料才知道小米工程师为了防止有人作恶禁用了这项功能。那么,现在必须想出替换方案,实现类似AlertDialog的弹窗效果。最后决定用半透明背景Activity实现AlertDialog的弹窗效果。 看下最后的效果图: 先给出代码,之后分析:Mai原创 2017-09-30 13:46:24 · 2662 阅读 · 0 评论 -
Android混淆遇到的坑
写这篇博客的原因是项目中遇到了一个关于混淆的坑并且很艰难的爬了出来。Android的混淆知识请参:Android代码混淆之混淆规则项目要求集成对蓝牙设备的操作,并且很快完成了这个需求,在自己的app中测试没遇到什么问题,当把app作为另一个大项目的aar集成后,再次测试这个蓝牙功能出现了Crash。顿时恐惧且疑惑,为什么作为aar就出现了问题?由于大项目自己没有源码,不能通过Debug调试找到问题,原创 2017-09-29 16:57:11 · 574 阅读 · 0 评论 -
Android异步消息处理机制
handler机制的原理对Android异步消息处理机制做整体讲解Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系从源码入手,环环相扣,引人入胜Android异步消息处理机制完全解析,带你从源码的角度彻底理解从源码入手,逻辑清晰,查漏补缺原创 2017-08-23 15:32:01 · 224 阅读 · 0 评论 -
Android 开发工具之Codota——搜索最好的Android 代码
Find Great Code ExamplesOur crawler extracts coding patterns from a vast number of code projects. Search here for the best code examples from over 7 million sources上面是Codota 官方介绍的最好的代码实例,我们的抓取工具从大量的代原创 2016-12-30 17:14:02 · 927 阅读 · 0 评论 -
Install plugin from disk插件自动化快速实现Parcelable接口序列化
前言相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activity之间传输该类对象,就需要将数据序列化。Android中实现方式有两种,第一、实现Serializable接口,这种比较简单,直接声明就好;第二种,实现Parcelable接口,这种方式就比较复杂,往往需要写多些代码去实现,不过效率就比较高,还是值得推荐这种方式。那么,现在问题来了…因为实现比较复杂,所以遭到很多人原创 2016-12-30 17:00:57 · 2095 阅读 · 0 评论 -
AndroidStudio插件GsonFormat快速实现JavaBean
安装方法一:Android studio File->Settings..->Plugins–>Browse repositores..搜索GsonFormat安装插件,重启android studio方法二:下载GsonFormat.jar ;Android studio File->Settings..->Plugins –>install plugin from disk..导入下载原创 2016-12-30 15:21:57 · 359 阅读 · 0 评论 -
安卓自动生成代码插件-Android code Generator
介绍Android Studio/IntelliJ IDEA的安卓代码生成插件,帮助提高app的开发速度。每一个Activity都需要XML布局,而Activity都包含这样的代码:相关view的变量为变量赋值(findViewById() )为button设置listeners(setOnClickListener() 方法)如果不用写这些代码,而是自动生成,那该多好。于是想找个能自动生成原创 2017-01-02 16:03:39 · 7757 阅读 · 0 评论 -
Android TextView 文字居中
有2种方法可以设置TextView文字居中:一:在xml文件设置:Android:gravity=”center”二:在程序中设置:m_TxtTitle.setGravity(Gravity.CENTER);备注:android:gravity和android:layout_gravity的区别在于前者对控件内部操作,后者是对整个控件操作。例如:android:gravity=”center”是对t原创 2016-11-24 10:57:15 · 388 阅读 · 0 评论 -
Android 6.0 权限总结
下面是对权限的总结:android.permission.EXPAND_STATUS_BAR 允许一个程序扩展收缩在状态栏,android开发网提示应该是一个类似Windows Mobile中的托盘程序android.permission.FACTORY_TEST 作为一个工厂测试程序,运行在root用户android.permission.FLASHLIGHT 访问闪光灯原创 2016-11-01 15:04:43 · 846 阅读 · 0 评论 -
Android Studio注释模板设置
“File and Code Templates”中添加模板点击菜单栏的“File“->“Settings”,打开Settings窗口。 点击“Editor”下面的“File and Code Templates”,然后选中Files里面的Class。 然后选中Includes下面的File Header。 在最右边的输入框中就可以输入我们想要设置的注释模板了。比如我们输入: /** * @C原创 2016-11-14 11:23:12 · 1664 阅读 · 0 评论 -
android studio生成aar包并在其他工程引用aar包
1.aar包是Android studio下打包android工程中src、res、lib后生成的aar文件,aar包导入其他android studio 工程后,其他工程可以方便引用源码和资源文件2.生成aar包步骤:①.用android studio打开一个工程,然后新建一个Module,新建Module时候选择Android Library,后面按新建普通工程操作 ②.新建Module 类型转载 2016-09-06 14:10:12 · 396 阅读 · 0 评论 -
Google自带下拉刷新组件SwipeRefreshLayout
界面:滑动部分用android.support.v4.widget.SwipeRefreshLayout组件包裹<android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeLayout" android:layout_width="match_parent" android:l原创 2016-08-26 11:48:39 · 529 阅读 · 0 评论 -
Android页面淡入淡出效果的实现
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final View view = View.inflate(this, R.layout.start, null); setContentView(原创 2016-08-25 17:59:28 · 2176 阅读 · 0 评论 -
Android之自定义对话框AlertDialog.Builder+getLayoutInflater().inflate
activity文件:AccountDetailActivity.javapublic class AccountDetailActivity extends BaseActivity{ private View configLayout; configLayout = view.findViewById(R.id.configDetailLayout); configLay原创 2016-09-02 17:31:56 · 1406 阅读 · 0 评论