
Android
sunshine_a70
这个作者很懒,什么都没留下…
展开
-
Android 组件初始化提示空指针
这个问题很简单,但是我犯了两次。第一次时还找了很久的原因,百思不得其解。原创 2018-11-16 16:18:33 · 518 阅读 · 0 评论 -
动画Animation
android系统中动画框架分为:1.传统的view动画框架和Android 3.0推出的属性动画框架。View动画框架又包括Tween补间动画和Frame逐帧动画2.补间动画 TweenAnimation : 分成AlphaAnimation, RotateAnimation, ScaleAnimation, TranslateAnimation(1)AlphaAnimation创建a...原创 2019-01-21 16:36:02 · 225 阅读 · 0 评论 -
Android 7.0 快速设定
Android 7.0以后,任何应用都可以在下拉菜单中添加自己的快速设定,从而让程序更加灵活方便。用户可以左右滑动跨分页的访问,可以删除或新增图块,还可以定义自己的快速访问的图块。实现快速设定,首先要创建类继承TileService,这是Android 7.0新加的,因此SDK要更新到7.0。这个服务不需要程序开启,系统默认能够识别并调用。1.QuickSettingService.java文...原创 2019-01-22 11:36:11 · 219 阅读 · 0 评论 -
自定义Toast提示框
Toast toast = new Toast(this);toast.setGravity(Gravity.center,0,180);ImageView image = new ImageView(this);image.setImageResource(R.drawable.ok);LinearLayout layout = new LinearLayout (this);layo...原创 2019-07-29 17:42:37 · 184 阅读 · 0 评论 -
OkHttpClient 加载网络图片
一、 简单介绍HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性:(1)支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接(2)连接池减少请求延时(3)透明的GZIP压缩减少响应数据的大小(4)缓存响应内容,避免一些完全重复的请求总之这是一个比较强大的封装...原创 2019-08-19 17:04:55 · 1075 阅读 · 0 评论 -
httpUrlConnection 用法示例
一、httpUrlConnection + get 方法public class MainActivity extends AppCompatActivity { private static final int IMG_GET = 1001 ; private ImageView imageView; private Button button; private...原创 2019-08-15 10:45:52 · 471 阅读 · 0 评论 -
Gson简单应用
一、Gson中常用的toJson、fromJson 应用示例1.MainActivity.java示例比较简单,此处不多做解释,直接上代码。public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";@Overrideprotected vo...原创 2019-08-15 16:58:14 · 188 阅读 · 0 评论 -
解析省市区Json
一、解析省市区Json文件此处只解析了本地json文件,spinner组件并没有实现省市区三级联动功能,后续再补充,欢迎讨论。要解析的json文件百度网盘连接 https://pan.baidu.com/s/1Y0v04prHve422W53vo6-6g1、XML文件如下,只有三个spinner组件<?xml version="1.0" encoding="utf-8"?>...原创 2019-08-21 15:54:58 · 1040 阅读 · 0 评论 -
WebView 详解
一、WebView 的简单使用示例1.activity_main.xml只放了一个简单的WebView 组件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="...原创 2019-08-16 16:57:00 · 396 阅读 · 0 评论 -
GsonFormat / Gson 解析小示例
一、GsonFormat / Gson 共同解析 json 文件首先在AS的setting->plugin 中 install GsonFormat 插件,然后在app.gradle 文件中导入 Gson 解析类,implementation 'com.google.code.gson:gson:2.8.5' MainActivity.java 文件如下:public class ...原创 2019-08-27 10:10:04 · 156 阅读 · 0 评论 -
Android Volley开源框架的使用
一、Android Volley 开源框架的使用2013年Google I/O大会上推出了一个新的网络通信框架——Volley。它既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。除了简单易用之外,Volley在性能方面也进行了大幅度的调整,它的设计目标就是非常适合去进行数据量不大,但通信频繁的网...原创 2019-08-27 12:19:45 · 271 阅读 · 0 评论 -
Android VideoPlayer
一、Android 视频播放的几种方法1、VideoView 播放组件(1)布局xml中添加VideoView组件 <VideoView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/VideoView" />...原创 2019-08-28 11:53:00 · 1893 阅读 · 0 评论 -
CollapsingToolbarLayout + Palette
一、CollapsingToolbarLayoutAndroid中的这个组件,是滑动的Toolbar,且Toolbar里面可以显示自定义的布局。它主要用于两个方面:1、当做普通的FrameLayout作为根布局使用2、作为一个或者多个子View进行复杂交互的容器CoordinatorLayout 为我们提供了一个叫做Behavior的东西,我们基本上的复杂交互都是使用Behavior来协调...原创 2019-08-28 17:04:11 · 214 阅读 · 0 评论 -
DrawerLayout 侧滑栏
一、DrawerLayout侧滑栏常见的客户端中左右侧滑栏一般都使用此控件,首先在项目Modle.gradle 中添加依赖包implementation 'com.android.support:design:28.0.0'implementation 'com.android.support:palette-v7:28.0.0'简单示例如下:(1)界面布局<?xml vers...原创 2019-08-28 18:12:02 · 314 阅读 · 0 评论 -
Toolbar + CardView
一、Toolbar 标题栏它的出现规范并拓展了APP标题栏的设计风格,极大地提高了开发效率,而且Material Design设计规范也越来越多出现在我们常用的APP中,因此有必要了解。下面是一个较简单的示例,(1)界面布局XML<android.support.v7.widget.Toolbar android:id="@+id/my_tb" android:lay...原创 2019-08-29 17:35:53 · 263 阅读 · 0 评论 -
RecyclerView详解
Android 5.0推出的同时,Google工程师在support-v7包下引入了一个全新的列表控件RecyclerView,这个控件比ListView和GridView都灵活,可用于显示庞大的数据。三要素:adapter,LayoutManager ,数据源adapter :需要继承RecyclerView.Adapter ,作用是将数据与每一个item的界面进行绑定。LayoutMa...原创 2019-01-09 18:51:01 · 1298 阅读 · 0 评论 -
ListView详解
ListView是Android非常重要的控件之一,它有三个要素,分别是listview控件,适配器类,数据源。ListView优化:适配器adapter中重写getView方法时,利用convertView是否为空进行view的重用。若convertView为空,则用过inflate()方法加载布局,如果不为空,则直接对convertView进行重用,这样listview在滚动时可以表现更...原创 2019-01-09 15:32:39 · 912 阅读 · 0 评论 -
Android app更新功能
最近公司客户端做了升级功能,感觉学到了不少东西,因此做下记录,以备后续查看。检查版本更新可以放在splash页面,也可以放在主页面。上图是更新app的思维导图,画的不是很好,大家能看懂就好哈。检查更新的步骤大体分为以下三步:1.首先判断网络是否连通,如果网络连通则走更新app线程,否则跳过更新app线程。2.更新线程首先获取服务器app版本号,如果版本号大于本地版本号时,提示用户更新本...原创 2018-12-24 14:33:14 · 466 阅读 · 0 评论 -
HttpURLConnection 详解
1. HttpURLConnection 概述 HttpURLConnection 采用http协议进行网络连接,HttpURLConnection 是Android中最基本的联网方式。最早的联网方式有两种——HttpURLConnection 和 HttpClient 。 HttpURLConnection 是一种多用途,轻量级的http客户端,使用它来进行HTTP操作可以适...原创 2018-12-29 16:44:31 · 761 阅读 · 2 评论 -
Broadcast 动态网络监听
动态监听网络状态广播示例:(1) AndroidManifest.xml中加入权限<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>(2)MainActivity.java文件public class MainActivity extends AppCompatActivity {...原创 2019-01-17 11:48:55 · 378 阅读 · 0 评论 -
自定义广播Broadcast
自定义广播的步骤有:注册,重写onReceiver(),发送广播。自定义广播示例如下,此示例发送了无序,有序,本地广播以及有序广播resultReceiver的用法。(1)注册广播 AndroidManifest.xml<receiver android:name=".MyReceiver01"><intent-filter android:priority="100...原创 2019-01-17 14:40:04 · 309 阅读 · 0 评论 -
桌面快捷方式
原生的Android系统装的Android应用默认不会显示在桌面快捷方式上,好多程序为了增强粘性而让程序自动生成快捷方式。而生成的方式就是给桌面发送广播。(1)创建删除快捷方式需要权限:<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/><uses-permiss...原创 2019-01-17 15:42:45 · 202 阅读 · 0 评论 -
大图的加载
手机客户端加载图片99%不会直接加载,而是需要放缩。比较宽和高的缩放比例,哪个大会用哪个进行缩放。比如加载手机根目录的一张图片,示例如下:首先获取权限...原创 2019-01-07 13:49:37 · 174 阅读 · 0 评论 -
service的基本用法
service的基本用法:创建,启动和停止,绑定等。示例代码如下:(1)activity_main.xml<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/a...原创 2019-01-17 18:11:30 · 586 阅读 · 0 评论 -
service使用案例(文件下载)
应用程序下载,并在通知栏提醒下载完成。过程大概分成三步:创建一个service在service启动的时候创建一个广播接收者当BroadcastReceiver接收到下载完成的广播时,开始执行安装此过程兼容了Android 7.0权限限制安装功能,Android 7.0 因为设置了“私有目录被限制访问”,“StricMode API”等安全机制,因此安装时会产生FileUriExpose...原创 2019-01-18 15:54:35 · 502 阅读 · 0 评论 -
图片颜色处理
Android提供了强大的颜色过滤器来进行颜色处理,ColorMetrixColorFilter通过一个4*5的矩阵来创建颜色过滤器,从而改变图片的信息。{1,0,0,0,0, //red 1*R + 0*G + 0*B + 0*A + 0 0,1,0,0,0, //green 0*R + 1*G + 0*B + 0*A + 0 0,0,1,0,0, //blue 0*R + ...原创 2019-01-08 12:20:25 · 319 阅读 · 0 评论 -
随手涂鸦
随手涂鸦小示例:xml布局文件:原创 2019-01-08 16:06:30 · 265 阅读 · 2 评论 -
BottomNavigationView底部导航
BottomNavigationView很早就在Material Design中出现了,但是知道support library >= 25,官方才增加了此控件。即必须targetSdkVersion >= 25时,才可以引入BottomNavigationView组件兼容包。此控件基本使用示例如下:gradle文件中添加依赖包 implementation ‘com.and...原创 2019-01-14 11:24:29 · 930 阅读 · 0 评论 -
TabLayout 标签布局
TabLayout :ViewPager上方放置一个标签指示器与其进行联动,此标签指示器就是TabLayout ,其中的Tab标签可以自定义view的样式。示例如下:1.导入依赖包 implementation ‘com.android.support:design:25.4.0’2.activity_main.xml布局文件&lt;?xml version="1.0" encoding=...原创 2019-01-14 14:51:05 · 316 阅读 · 0 评论 -
Fragment
Android 3.0引入的碎片化控件,可以简单理解为小型的activity,适用于不同屏幕大小的灵活性展示方式。1.fragment必须嵌入到activity中使用,它拥有自己的布局和生命周期。常用的生命周期方法有oncreat(),oncreatView(),onPause()等。2.创建fragment,首先为其定义xml布局,再定义类继承Fragment,重写其中的oncreatVie...原创 2019-01-14 17:35:36 · 135 阅读 · 0 评论 -
Android Studio为什么没有Android SDK选项
今天碰到了一个问题,Android studio 打开后,setting里面没有sdk选项。不知道什么原因,然后百度了下。解决办法记录如下:点击setting–》plugins–》找到“Android Support”选项,并勾选,然后会提示重启android studio ,点击重启,ok,如果已经设置好SDK的路径的话,问题解决,如果还没有设置SDK路径,这时候,再如下操作:打开下面的面...转载 2019-01-25 11:16:46 · 8275 阅读 · 1 评论 -
属性动画 Property Animation
一、 Android动画分类如下:视图动画的缺陷:对象的局限性:仅限于View只改变了View的视觉效果,而没有改变View的属性动画效果单一属性动画的特点:作用对象:任意对象,甚至没对象也可以作用方式:改变对象的属性动画效果:按需自定义,不再局限于上述4种基本变换二、属性动画1、ValueAnimator.ofObject()简单示例(1)自定义JavaBean类:pu...原创 2019-09-24 11:51:05 · 206 阅读 · 0 评论