Android 常用开源库(持续更新)
博客推荐最新最全Android 常用开源库总结
View组件Banner图片轮播控件 https://github.com/youth5201314/banner
Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式、动画、轮播和切换时间、位置、图片加载框架等!
ButterknifeView注入框架 https://blog.csdn.net/ZhaiKun68/article/details/76986977
APP架构搭建 - MVP基础版
前言快速完成APP框架的搭建,节约开发时间。系统的基本搭建,基本借助了优秀的第三方工具。第三方工具的选择,根据自身项目而定,需要利于项目后期的更新、迭代及相关维护。
完成本文后,可对MVP框架有基本的认识。
1 Android开发框架MVP百度百科 - MVP模式介绍
博客推荐 - 博主 - 大力-哥 -【android进阶篇】MVP+Retrofit+RxJava框架结合
Google 关于 MVP 模式的介绍项目
2 底部导航栏博客推荐 - 博主 - 阿飞__ - Android底部导航栏,三种风格和实现
博客推荐 - 博主 - cc_wentian - Android底部导航栏最常用的两种写法
博客推荐 - 博主- 野狼谷 - Android (争取做到)最全的底部导航栏实现方法
博客推荐 - 博主 - 天地炫舞 - LinearLayout+Fragment实现下导航栏效果
3 BaseActivity基类设计博客推荐 - 博主 - 吾非言 -【Android】BaseActivity基类设计
4 日志管理4.1 Klog使用方法:博客推荐 - 博主 - 熊旭川 - Klo ...
我的 CSDN 博客 https://blog.csdn.net/zhaikun68
文章同步更新至 CSDN 博客 我的 CSDN 博客
Hexo + Butterfly + GitHub/Coding 搭建个人独立博客
前言自从在CSDN写博客以来,开始慢慢觉得应该拥有一个属于自己的博客网站,期间折腾了很多次,结果都不了了知,最近终于将这颗浮躁的心安抚了下来,咱还是做一个有始有终的程序员。
起初写博客只是为了记录自己在平时开发过程中的经历,那些踩过的坑,还有那些优秀的框架。后面逐渐感受到学会一个新的知识点不容易,将这个知识点说得清楚,道得明白,更是不易,写博客也是对自己的一个提高。
在此之前虽然写过一些博客,但内容着实不丰富,也体会到了创作的不易,期待后续能够推出一些高质量的博文。
下面我们开始进入今天的正题。。。
搭建平台基于 GitHub + Hexo + NexT 搭建个人博客
GitHub 个人博客静态网页托管平台
Hexo 快速、简洁且高效的博客框架,搭建本地静态网页站点
NexT 个人博客主题,样式多样化、功能多样化
在使用 Hexo 之前,需要先注册 GitHub 账号注册 GitHub 账号
安装配置 HexoHexo 官方提供了多种主题配置,这里我选择了、、、
Hexo 官方教程
主题配置NexT 主题配置官网
这里为什么不详细介绍安装过程?官网文档已经将各类配置信息描述得非常清 ...
APP兼容不同的设备之适配不同的语言
随着智能化时代的到来,Android设备具有了各种各样的大小和尺寸。为了让我们的APP能在不同平台的Android设备上使用,需要将APP兼容各种不同的设备类型,例如各个地区的语言、屏幕的尺寸大小和分辨率、横竖屏幕的切换、Android的各个系统版本等都是需要重点考虑的因素。
利用各种资源的替换和其他功能,使APP仅仅用一个APP程序包(APK)就能兼容不同的设备,向用户提供最优的体验。
1 适配不同的语言将UI(组件view)中的字符串提取出来存储在外部文件中,通过代码提取,也就是说在Android工程中的res资源文件夹下,将APP中需要使用的字符串值保存在res/values/strings.xml文件中。
1.1 为了使各种字符串值支持多个国家的语言,在res目录下创建额外的values目录,创建的目录以连接字符 “-” 和ISO国家代码(文章结尾附有ISO国家代码表)结尾命名,如values-es代表语言代码为“es”的国家的资源文件目录,在APP运行时根据设备的区域设置,加载相应的资源。
实例:创建对应区域语言的资源子目录和字符串资源文件
目录res/values/str ...
APP兼容不同的设备之适配不同的屏幕
在适配不同的屏幕时,主要针对的是不同设备的尺寸大小和分辨率、同一设备的横屏和竖屏。
尺寸大小普遍的分为4类:small(小尺寸)、normal(普通尺寸)、large(大尺寸)、xlarge(超大尺寸)
分辨率普遍分为4类:ldpi(低精度)、mdpi(中精度)、hdpi(高精度)、xhdpi(超高精度)
与适配不同区域的语言类似,在APP中应该包含一些所需要的可选资源,针对不同的屏幕声明对应的UI布局资源layout和图片资源bitmap,然后将这些可选的资源存放在独立的对应的目录中。
UI布局资源layout根据所需要支持的屏幕尺寸大小创建唯一的XML文件,每一种资源文件存放在相应的资源目录中,资源目录以layout-<屏幕尺寸大小>命名。例如,超大尺寸屏幕目录layout-xlarge,针对超大尺寸屏幕有一资源文件activity_main.xml,那么该XML文件就应该存放在res/layout-xlarge/目录中。
在程序运行时,Android会根据屏幕尺寸的大小自动的测量layout文件,确保不同屏幕尺寸的XML文件存放于对应的目录中,并且XML文件要具有唯 ...
APP兼容不同的设备之适配不同的系统版本
在AndroidManifest.xml文件中配置APP所支持的Android版本,即在属性中的minSdkVersion和targetSdkVersion,指明在设计和测试APP时,最低兼容和最高兼容的Android系统版本:
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="25"/>
随着Android系统版本的不断升级,为了能使我们的APP使用更多的新功能,应该在测试可用的情况下适应最新的版本。
修改CheckBox选择框、设置选择框颜色
使用组件自带的属性
android:buttonTint
可直接设置选择框的颜色
修改选择框选中与未选中时的状态,需设置选择器 selector.XML
<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/check_box_checked" android:state_checked="true"/> <item android:drawable="@drawable/check_box_checked" android:state_presse ...
Android数据保存-shared preference
适用类型:保存相对较小的 key-value 键值数据
package net.oschina.git.zhaikun.androiddeveloped.activitys;import android.content.SharedPreferences;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;/** * Created by zk on 2017/7/25. * <p> * 文件保存-SP */public class SharedPreferenceActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(s ...
Android数据存储之文件File
适用类型:流式顺序数据的读写
Android中使用的文件 File,其实就是一个基于磁盘的文件系统,早期的设备将数据存储分成了两个部分:设备中内存大小固定不可变的内部存储和类似于SD Card的外部存储。在后面我所接触的设备中将这两个部分集成在了一起,做成了不可卸载的内置存储,但在逻辑上还是分成了内部存储和外部存储。
内置存储(internal):在设备中始终是可用的;数据只提供给我们的APP访问;APP被卸载时,保存的数据同时被删除
外部存储(external):当用户通过USB存储模式挂载外部存储器,取下挂载的这部分后,就无法对其进行访问;用户或者其他的APP可以访问外部存储的数据;当用户卸载我们的app时,系统仅仅会删除external根目录(getExternalFilesDir())下的相关文件
tip:APP默认是安装在内置存储中的,通过配置文件 AndroidManifest.xm 中的标签 manifest 中的属性 android:installLocation 可设置APP的安装位置
<manifest xmlns:android="htt ...