android
文章平均质量分 66
kangkang_style
活着的感觉挺好,珍惜来之不易的每一天
展开
-
Android中的视图属性
基本属性id: 指定该视图的唯一编号visibility: 指定视图的可视类型backgroud: 指定该视图的背景宽高layout_width: 指定该视图的宽度,可以是具体的dp值 match_parent: 表示与上级视图一样宽 wrap_content: 表示与内部内容一样宽layo...原创 2019-10-21 15:27:45 · 696 阅读 · 0 评论 -
拖拽<二>
拖拽主要是依托onTouchEvent创建可拖拽的单个组件,可以称之为单个view的拖拽实现。拖拽主要是实现的是拖拽布局,即可拖拽的ViewGroup,对于父容器内的所有ChildView的拖拽实现xml布局文件:<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android原创 2018-01-22 11:38:24 · 217 阅读 · 0 评论 -
拖拽<一>
简单的拖拽,直接贴代码:package com.hjk.shiny.androidcontrols;import android.content.Context;import android.content.SharedPreferences;import android.support.v7.app.AppCompatActivity;import android.os.Bundl原创 2018-01-17 17:37:59 · 163 阅读 · 0 评论 -
getleft和getX,getRawX的区别
Android中有两种坐标系,分别称之为Android坐标系和视图坐标系。android坐标系:即屏幕的左上角为坐标原点(0,0)视图坐标系:即描述的是子视图在父视图中的位置,是父视图的左上角作为坐标原点View 方法 : getLeft(),getTop(),getRight(),getBottom() 得到的值均为该view相对于父容器的相对原创 2018-01-19 17:03:23 · 787 阅读 · 0 评论 -
拖拽<三>
使用ViewDragHelper实现拖拽的布局拖拽效果。官方在v4的支持包中提供了ViewDragHelper这样一个类来帮助我们方便的编写自定义ViewGroup。 ViewDragHelper.Callback是连接ViewDragHelper与view之间的桥梁; ViewDragHelper的实例是通过静态工厂方法创建的; ViewDragHelper可以原创 2018-02-05 17:39:56 · 160 阅读 · 0 评论 -
ExpandableListView的使用及结合RadioButton的坑
ExpandableListView 即原生控件折叠列表,很多场景我们都需要使用,先描述一下基本的使用实例:代码两份:MainActivity+adapter布局三张:Main+group+child解释一下各自的作用,MainActivity作为主运行代码和功能逻辑的调用模块,adapter解析ExpandableListViewMain是MainActivity的布局,group是Expand...原创 2018-03-06 17:20:36 · 796 阅读 · 0 评论 -
缓存机制
缓存是指对数据的复用比较常见的有: 1. 内存缓存 2. 磁盘缓存 电脑的三大核心部件: 1. 中央处理器 计算机的可编程性主要是指对中央处理器的编程。 2. 内部存储器 存储器的种类很多,按用途可以分为: 2.1 主存储器(即内存) 是CPU能直接寻址的存储空间,...原创 2019-04-03 21:02:28 · 184 阅读 · 0 评论 -
网络请求框架 Okhttp
OkHttp简介: OkHttp是一个高效的HTTP客户端 使用builders构造器模式,支持阻塞式的同步请求和带回调的异步请求。 特性: 1. 允许所有同一个主机地址的请求共享同一个socket连接 2. 连接池减少请求延时 3. 透明的GZIP压缩减少响应数据的大小 4. 缓存响应内容,避免一些完全重复的请求引入项目: ...原创 2019-04-10 21:45:41 · 413 阅读 · 0 评论 -
Rxjava
Rxjava简介: 核心思想都是观察者模式 引入项目: implementation 'io.reactivex.rxjava2:rxjava:2.0.1' implementation 'io.reactivex.rxjava2:rxandroid:2.0.1' 语法结构: /** * 被观察者 * 通过create方法创建...原创 2019-04-10 21:52:33 · 102 阅读 · 0 评论 -
json解析
常用的解析工具: 1. Gson 在进行序列化与反序列操作前实例化一个 com .google.gson.Gson 对象 1. 获取 Gson 对象的方法有两种: 1.1 通过构造函数来获取 Gson gson = new Gson(); ...原创 2019-04-15 21:07:14 · 226 阅读 · 0 评论 -
Volley
StringRequest的用法: 1. GET 请求 // 获取到RequestQueue对象 RequestQueue mQueue = Volley.newRequestQueue(context); /** * 创建一个StringRequest对象 * StringRequest的构造函数需...原创 2019-04-15 21:10:58 · 179 阅读 · 0 评论 -
网络请求框架 Retrofit
创建实例:Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://localhost:4567/") .build(); 注意: 创建Retrofit实例时需要通过Retrofit.Builder,并调用baseUrl方法设置URL。 Retrofit2 ...原创 2019-04-15 21:33:32 · 121 阅读 · 0 评论 -
Android utilcode 工具依赖库
引入: implementation 'com.blankj:utilcode:1.18.2'API 介绍: https://blog.csdn.net/qq_38998213/article/details/82181309 github官网地址: https://github.com/Blankj/AndroidUtilCode/blob/master/u...原创 2019-04-16 21:35:30 · 576 阅读 · 0 评论 -
java 关键字 volatile、synchronized、Lock
volatile:简介: 用以声明变量的值可能随时会别的线程修改 使用volatile修饰的变量会强制将修改的值立即写入主存 主存中值的更新会使缓存中的值失效 特性: 1. 可见性 当多个线程访问同一个变量时,某一个线程修改了变量的值,其他线程能够立即读取到该变量修改后的值。 2. 有序性 即程序执行时按照代码书...原创 2019-04-16 21:38:22 · 239 阅读 · 0 评论 -
File处理
关于File的处理,文件,目录的创建和删除,都需要添加对storage的读写权限。Android6.0以后,加强了对权限的管理功能,除在Manifest添加权限外,还需要用户同意勾选赋予权限呢。写了一个FileClass,添加了一些常用的方法,还有很多,没有添加的,暂时先这样了。package com.hjk.shiny.androidcontrols;import and...原创 2018-02-05 17:30:23 · 203 阅读 · 0 评论 -
存储
Android手机分为内部存储和外部存储,区分方法,外部存储意外的都是内部存储。外部存储指代sdcard中的存储。外部存储不一定是要接入外插是sdcard。现在智能手机都不对外接入插入式sdcard,所以不好区分内部存储和外部存储的概念,但不妨碍称内置的sdcard为外部存储。通过OTG线,可以让手机连上u盘,接入读取更大空间。应用产生的数据会有两部分,一部分会和系统文件存在于内部...原创 2018-02-02 16:03:19 · 218 阅读 · 0 评论 -
Android 环境下报错You have not accepted the license agreements of the following SDK components:
报错信息类似于:A problem occurred configuring project ':app'.> You have not accepted the license agreements of the following SDK components: [Android SDK Build-Tools 26.0.3, Android SDK Platform 26]....原创 2019-07-18 20:58:58 · 278 阅读 · 0 评论 -
DrawerLayer+NavigationView 实现侧滑菜单
介绍:DrawerLayout分为侧边菜单和主内容区两部分:1.侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性)2.主内容区的内容可以随着菜单的点击而变化(这需要使用者自己实现)drawerLayout其实是一个布局控件,跟LinearLayout等控件是一种东西,但是drawerLayout带有滑动的功能。只要按照drawerLayo原创 2017-12-07 17:23:19 · 353 阅读 · 0 评论 -
DigitalClock---TextClock---AnalogClock---Chronometer---程序退出保持后台运行设置
DigitalClock是老版的文字时钟,API17及以上版本采用TextClock文字时钟。1.TextClock文字时钟在布局文件中设置显示时间格式:xml格式* "MM/dd/yy h:mmaa" -> "04/06/70 3:23am"* "MMM dd, yyyy h:mmaa" -> "Apr 6, 1970 3:23am"* "MMMM dd, y原创 2017-04-27 15:44:57 · 782 阅读 · 0 评论 -
android BadgerView 提示小圆点
BadgeView使用介绍 :BadgeView主要是继承了TextView,所以实际上就是一个TextView,底层放了一个label,可以自定义背景图,自定义背景颜色,是否显示,显示进入的动画效果以及显示的位置等等;主要方法:除了父类TextView本身的方法以外,子类的方法主要在于设置label的属性,包括显示位置,背景图,背景颜色,动画效果等;原创 2017-08-01 15:48:49 · 463 阅读 · 0 评论 -
Android 手机定位调用方法
android手机定位在中国还是有些坑的。首先android的定位方式分为三种:GPS,NET_WORK,PASSIVE具体问题代码见:1.获取定位管理服务:LocationManager mgLocation=(LocationManager)MainActivity.this.getSystemService(Context.LOCATION_SERVICE);原创 2017-04-20 11:19:57 · 1320 阅读 · 1 评论 -
基础自定义view步骤
想来说说基础版自定义View的步骤: 实现自定义View的属性设置,需要: 在values目录下建立attrs.xml文件,添加属性内容 在布局文件中添加新的命名空间xmlns,然后可以使用命名空间给自定义的空间设置属性 设置完属性之后,当然还要对其进行处理。在自定义View类中的构造方法中进行处理 首先贴一段attrs的代码:原创 2016-08-24 16:17:20 · 461 阅读 · 0 评论 -
android的三种动画基础用法。
android动画中的常用的三种动画,即逐帧动画(FrameAnimation),补间动画(TweenAnimation)和属性动画(PropertyAniation). 首先就最简单的FramAnimation入手,看看如何分别用代码和xml文件实现。 如果是将动画定义在xml文件中,无论是哪一种动画,只要定义在xml文件中,我们都需要去在res目录下创建一个anima的folder原创 2016-08-22 11:12:36 · 546 阅读 · 1 评论 -
关于时间,日期和格式的转化处理
Calendar,Date,SimpleDateFormat的相互转化 android中的时间类Date是用来对时间进行处理的一个常用类,早期,可以通过设置Date date=new Date();中的参数对时间进行设置和修改。后来Date这个类更多的时候是标识一个时间的单位存在,不再对时间进行操作处理了,而替代它的更强大的一个类Calendar提供了更多的对于时间进行修改和操作的原创 2016-08-21 14:06:19 · 654 阅读 · 1 评论 -
Android--WIFI--Mac--Ip
获取手机的wifi管理:wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);链接情况下获取相关信息:info=wifiManager.getConnectionInfo();如果wifi没有链接,调用系统方法打开wifi设置页面:Intent intent=new Intent();inte原创 2017-04-25 09:06:41 · 366 阅读 · 0 评论 -
FragmentManager与FragmentTransactioin
FragmentManager为Fragment的管理类:FragmentManager能够实现管理activity中fragment. 通过调用activity的getFragmentManager()或者getSupportFragmentManager()取得它的实例FragmentManager可以做如下一些事情:1、使用findFragment原创 2017-08-08 10:08:32 · 364 阅读 · 0 评论 -
android 模拟window运行环境
因为模拟配置的是xp系统的环境,没啥好描述的就直接上步骤了: 1.下载安装安卓平台的XP虚拟机 -- Bochs.apk(装好后先别打开!否则无法运行!) 2.将附件解压出来的“SDL文件夹”连同里面的文件一起复制到手机内存卡根目录。 3.打开下载的Windows XP镜像文件,将里面的“andows.img”文件复制到手机内存卡SDL目录下。原创 2017-09-29 15:00:45 · 4886 阅读 · 1 评论 -
关于ViewPager 嵌套ViewPager和flyco依赖冲突的解决办法
首先明确一点的是ViewPager是可以嵌套ViewPager的最外层ViewPager控制主页面,简称为pOnepOne的某一个子页面,或多个子页面嵌套的ViewPager ,简称为pSon其实简单的嵌套,带来的问题主要是两点:1.pOne与pSon的滑动监听控制2.pOne与pSon的关联fragment的管理解决办法也很简单:1.在不做任何处理的情况下,在原创 2017-12-12 10:00:02 · 399 阅读 · 0 评论 -
控制ViewPager的滑动功能的开关
代码很简单,注释很详细,直接贴代码,省心又省力。package com.hjk.shiny.weshop.overwrite;import android.content.Context;import android.support.v4.view.ViewPager;import android.util.AttributeSet;import android.view.Motio原创 2017-12-07 15:12:17 · 512 阅读 · 3 评论 -
BottomNavigationBar 取代 TabHost的时候早已到来
BottomNavigationBar作为取代TabHost作为官方推荐底部导航栏,前面讲解过了TabHost单独时候或配合Fragment今天主要讲解一下BottomNavigationBar的简单使用 1.导包 build.gradle 添加一个版本的BottomNavitaionBar compile 'com.ashokvarma.an原创 2017-12-07 14:42:51 · 320 阅读 · 0 评论 -
android TabHost
虽然tabhost已经被官方废弃了,但是用还是能用,其搭配activity或者fragment都能很好的实现页面的切换使用条件:MainAcitivy必须继承自TabActivity,通过调用getTabHost();方法获取TabHost对象TabHost常用组件:TabWidget:该组件就是TabHost标签页中上部 或者 下部的按钮, 可以点击按钮切换选项卡原创 2017-08-01 17:31:22 · 369 阅读 · 0 评论 -
Android TabHost 二
Fragment 配合 TabHost FragmentActivity替代TabActivity,但是每次加载都会刷新页面1.fragmentpackage com.example.fragment;import android.app.Activity;import android.os.Bundle;import android.support.v4.app.Frag原创 2017-08-01 18:09:16 · 320 阅读 · 1 评论 -
Android RecyclerView <一> 纯粹
将RecyclerView类比ListView学习理解:对比:ListView=data数据+adapter适配器对比:RecyclerView=data数据+adapter适配器+LayoutManger布局管理+ItemDecoration分割线+ItemAnimator条目动画并且RecyclerView没有条目的点击事件,需要自己添加监听相对于ListView而言,Recy原创 2017-08-02 17:41:46 · 236 阅读 · 0 评论 -
android WebView 和 Html 的相互调用
简单的android和html页面的交互调用,对于初学者而言还是算是比较清楚的,可以直接套用,拿走不谢!原创 2017-04-26 15:35:14 · 779 阅读 · 0 评论 -
android SwipeRefreshLayer
SwipeRefreshLayout:官方推荐的刷新布局在竖直滑动时想要刷新页面可以用SwipeRefreshLayout来实现通过设置OnRefreshListener来监听界面的滑动从而实现刷新使用这个布局要想达到刷新的目的,需要在这个布局里包裹可以滑动的子控件只能有一个子控件support library的版本升级到19.1或更新主要方法介绍:原创 2017-08-02 14:40:52 · 258 阅读 · 0 评论 -
Android RecyclerView <二> fragment+ItemDecoration
这次采用一个Activity管理多个拥有RecyclerView的Fragment页面,定制RecyclerView的ItemDecoration本文分两个部分,第一部分为线性布局,第二部分为网格布局一:LinearLayoutManager下的Vertical 与 Horizontal完成功能总共分三个部分:1.自定义一个简单的ItemDecoration2.fragment原创 2017-08-04 15:41:46 · 1061 阅读 · 0 评论 -
弹窗录音精简版
直接贴代码了,不解释了,这是精简版的,生成文件时amr的音频格式,当然也有完成版,生成的是wav格式的文件。public class SelectPicPopupWindow extends PopupWindow{ private Button makeTape , playTape , pauseTape , cancel; private View mMenu原创 2016-09-02 10:21:29 · 581 阅读 · 0 评论