![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓
文章平均质量分 97
xiaoqiang_0719
安卓开发
展开
-
安卓实现listview联动效果且选项多选
实现效果如图,点击大洲进行第一个listview数据的刷新且联动第二个listview数据更新,正常第二个listview是单选,点击后进行数据刷新,现在做的是数据多选最后点击确定按钮进行数据提交首先实现两个listview联动效果:数据源如下 "area": [ { "id": "1009", "namecn":原创 2017-06-19 15:52:19 · 4441 阅读 · 4 评论 -
关于极光推送收不到通知的问题
目前极光推送的SDK都是独立进程的,从安卓SDK的1.8.0版本之后,为了解决市场上一些特殊ROM的限制,新增了进程之间相互唤醒的功能,只要有一个app的进程存在,那么就可以唤醒其他同样使用极光SDK的app进程,收到推送。原创 2016-07-05 17:33:19 · 18622 阅读 · 3 评论 -
Android图片加载神器之Fresco-Java代码实现圆形圆角效果
转载自:http://blog.csdn.net/y1scp/article/details/49734429RoundingParams百学须先立志—学前须知:之前我们学会了一些基本的效果设置,对于常见的圆形圆角图没有涉及,那么今天我们就一起来看看,如何设置圆形圆角图。尽信书,不如无书—能学到什么?1、DraweeHierarchy转载 2016-09-05 10:00:07 · 3823 阅读 · 0 评论 -
微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧!
转载自:http://blog.csdn.net/qq_26787115/article/details/52388123微信朋友圈的图片上传,多图上传怎么去撸才合适?我们一起来实现吧!图片上传是非常常见的功能,而多图上传在大多数应用中也是非常常见的,比如微信的朋友圈,微博的动态,都是有九宫格图片的,那这里肯定涉及了多图上传,所以今天我们来一起撸一下,怎转载 2016-09-05 10:24:52 · 3029 阅读 · 0 评论 -
android 沉浸式状态栏(像ios那样的状态栏与应用统一颜色样式)
这个特性是andorid4.4支持的,最少要api19才可以使用。下面介绍一下使用的方法,非常得简单:[java] view plaincopypublic class MainActivity extends Activity { @Override protected void onCreate转载 2016-08-19 15:41:14 · 306 阅读 · 0 评论 -
android状态栏一体化(沉浸式状态栏)
Android 沉浸式状态栏、状态栏一体化、透明状态栏、仿ios透明状态栏 http://blog.csdn.net/jdsjlzx/article/details/50437779注:状态栏的字体颜色位白色, 如果状态栏背景为白色,上面的博客已经解决了。原文出处:http://niorgai.github.io/2016/03/20/Android-trans转载 2016-08-19 15:20:04 · 562 阅读 · 0 评论 -
android打包准备:混淆第三方jar包(Gson, greenDao,sharesdk,UIL,高德地图, unity,pinyin4j,async http,JPush,EventBus等)
1、Gson混淆## ----------------------------------## ########## Gson混淆 ############ -----------------------------------keepattributes Signature-keep class sun.misc.Unsafe { *; }-转载 2016-08-29 11:41:44 · 878 阅读 · 0 评论 -
网络学习资源(要拜读的一些博客地址以及一些开源库)
知名网站本系列的开发笔记,对Android开发来说只是沧海一瓢,还有更多的技术等待我们去汲取。下面列出几个常用的开发网站,供初学者上路:首先当然是国内首屈一指的技术网站csdn啦,csdn提供了众多频道,包括博客、论坛、下载、问答等等,其中博客专栏提供了最新的技术文章,值得推荐。csdn博客专栏的地址是 http://blog.csdn.net/column.html下面是cs转载 2016-08-02 10:31:52 · 727 阅读 · 0 评论 -
viewpager与viewflipper详解以及横幅轮播页Banner
ViewPagerViewPager的概念在前面的博文《Android开发笔记(十九)底部标签栏TabBar》中,我们提到可以在一个主页面里通过选项卡方式,切换到不同的子页面。那么在手机上还有另外一种切换页面的方式,就是通过手势左右滑动,ViewPager就是这么一个左右滑动来切换页面的控件。ViewPager的基本思想跟适配视图差不多,都是定义一组元素,通过适配器来展示与响应不同元素转载 2016-06-23 17:33:06 · 2481 阅读 · 0 评论 -
图片加载库Glide介绍
英文原文 Introduction to Glide, Image Loader Library for Android, recommended by Google首发地址 http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图转载 2016-07-06 17:30:10 · 370 阅读 · 0 评论 -
TransitionDrawable使用以及动画效果
一个TransitionDrawable是一个特殊的Drawable对象,可以实现两个drawable资源之间淡入淡出的效果。两种形式实现:1.通过alphaAnimation实现2.通过transitionDrawable 实现Drawable[] drawableArray = { getResources().getDrawable(原创 2016-06-20 11:48:29 · 1771 阅读 · 0 评论 -
ScrollView滑动实现标题栏透明度随之渐变
我们在使用Scroview滑动的过程中有可能需要通过测量滑动了多少来动态修改某个空间的颜色实现效果如图所示期初状态栏颜色为透明色,随着Scroview向下互动的过程中状态栏的颜色随之慢慢变成白色最后当Scroview滑动到第一个view的高度的时候完全变成白色此时状态栏已经完全变成白色想要实现这个效果 首先需要两个view :一个是标题栏为原创 2016-07-26 17:53:58 · 2920 阅读 · 0 评论 -
制作特别的.9图片
.9图片的加工Android的SDK自带了.9图片的加工工具,路径是SDK安装目录下的sdk\tools\draw9patch.bat,运行该程序就会呈现工具界面。把需要加工的png图片拖到该工具界面上,图片便加载到工具处理画面左边窗口是图片加工区域,右边窗口是图片预览区域,从上到下依次是纵向拉伸预览、横向拉伸预览、未拉伸预览。在左边窗口图片四周的马赛克处,转载 2016-06-17 17:03:38 · 532 阅读 · 0 评论 -
安卓SwipeRefreshLayout的使用方法
使用SwipeRefreshLayout可以实现下拉刷新,前提是布局里需要包裹一个可以滑动的子控件,然后在代码里设置OnRefreshListener设置监听,最后在监听里设置刷新时的数据获取就可以了。由于是新出来的东西,所以要想使用,先把support library的版本升级到19.1或更新。使用方法非常简单,只需要再布局中引入这个控件就可以了 android.support.v4原创 2017-07-11 19:59:31 · 1001 阅读 · 0 评论 -
Android实现Imageview上面圆角下面直角效果
如图背景为四个角都是圆角的图片,我们完全可以使用shape写出四个圆角,包括描边 填充色等,代码如下:xml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > and原创 2017-06-16 15:50:55 · 11715 阅读 · 1 评论 -
Android---Window、WindowManager和WMS体系
前言本篇文章会从源码层面上分析Activity从创建直到在页面上显示的过程。首先分析一下在这个过程中会遇到的一些接口和类了解它们的源码以及功能之后再将它们串起来就能够了解整体的流程了概述类和接口1. Window体系Window体系说白了就是要在页面是显示的View,这个体系中包含多个类来共同完成view的显示其中包括Activity、Window、PhoneWindow、De...原创 2019-06-14 17:59:32 · 958 阅读 · 1 评论 -
Android---Handler体系
前言作为一个Android程序员Handler机制使用的十分频繁,基本使用方法我不会再去累赘,本篇文章意在阐述自己在使用过程中遇到的问题以及阅读源码后得到的收获。首先是几个问题子线程有哪些更新UI线程的方法?Activity的runOnUiThread(Runnable action) 是如何实现子线程更新UI的?Handler导致的内存泄露问题?源码分析从使用流程进行源码分析...原创 2019-06-13 17:41:10 · 920 阅读 · 0 评论 -
红黑树特征和翻转操作
红黑树特征:红黑树是每个节点都带有颜色属性的二叉查找树性质1. 节点是红色或黑色。性质2. 根节点是黑色。(最顶端的中间节点为根节点)性质3 每个叶节点(NIL节点,空节点)是黑色的。性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。红黑树的左旋操作...原创 2019-05-08 10:38:10 · 2126 阅读 · 0 评论 -
从问题出发,解析Activity、Window、View三者关系
从问题出发,往往能更明确的找到所求。本文将带着一个个的问题,结合源码,逐步解析Activity、Window、View的三者关系。什么地方需要window? 一句话总结:有视图的地方就需要window Activity、Dialog、Toast... PopupWindow和Dialog有什么区别?两者最根本的区别在于有没有新建一个window,...转载 2019-03-31 15:19:25 · 1829 阅读 · 0 评论 -
Retrofit2.0 添加log拦截、公共参数
创建retrofit 进行网络请求Retrofit retrofit = new Retrofit.Builder().client(getOkHttpClient())//使用自己创建的OkHttp .baseUrl("http://fy.iciba.com/") // 设置 网络请求 Url .addConverterFactory(GsonConverte...原创 2019-01-31 17:42:26 · 6289 阅读 · 0 评论 -
android 源码剖析之------Window的内部实现机制(添加、删除、更新)
今天,在做项目的过程中,实现了一个浮动窗口的功能,大致思路是这样的:通过实例化一个ImageButton并给这个Button设置监听,然后将这个Button传递给WindowManager的addView方法,在ListView滑动过程中,通过监听ListView的滑动状态,利用WindowManager的updateViewLayout方法,控制浮动窗口的显示和隐藏。功能实现很简单,但是,一直有...转载 2018-11-09 10:51:55 · 2428 阅读 · 0 评论 -
安卓刘海适配
先炫富!三种情况会涉及到刘海的适配:1.有状态栏的情况(不是全屏FULLSCREEN状态)不需要适配刘海,如果没有设置状态栏颜色默认状态栏为黑色背景白色字体和图标,这种情况不会受到刘海的影响,因为刘海的高度就是状态栏的高度,只要有状态栏的app不需要进行刘海适配,当然可以相应的进行状态栏背景或者字体颜色的修改使app色调更加协调,下图为vivo x21的状态栏可以看到电量时...原创 2018-06-29 15:03:34 · 9827 阅读 · 28 评论 -
请求参数按照ASCII码从小到大排序后追加秘钥再进行加密得到签名值
Step 1:对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序)后,使用 URL 键值对的 格式(即 key1=value1&key2=value2...) 拼接成字符 string1 。 注意: 为空的参数不参与签名。 Step 2:在第一步中 string1 最后拼接上 key=Key(密钥)得到 stringSignTemp 字符串,并对 ...原创 2018-05-29 10:56:50 · 10811 阅读 · 0 评论 -
安卓使用腾讯Bugly实现应用升级功能
百度搜索bugly登陆平台,创建应用,获取应该用ID,在应用程序代码中使用该ID就可以实现该应用与bugly平台应用对接进入bugly平台之后会看到三个模块:异常上报,运营统计,应用升级。也就是说bugly平台包含着三大功能,今天要研究的就是应用升级模块,此模块包含 全量更新和热更新,这篇文章就是针对全量更新来写的应用更新步骤:1.首先服务器要有最新的apk包2.应用启动检查是原创 2017-10-10 11:21:37 · 8041 阅读 · 0 评论 -
安卓MVP架构模式
一、架构演变概述我记得我找第一份工作时,面试官问我“android是否属于MVC架构模式,简述一下”。确实,Android的整体设计结构就是MVC的设计模式,在J2EE的开发中,使用的也是MVC模式,MVC模式是一个经典,经历了几十年的考验。Android项目中的MVC架构:View:是应用程序中处理数据显示的部分,对应于layout文件下的布局文件 Model:业务逻辑和实体模型...转载 2017-11-30 18:59:37 · 1725 阅读 · 0 评论 -
安卓知识点及问题处理方案记录,持续更新~
记录*A1.解决Android应用被系统回收,重打开崩溃问题http://blog.csdn.net/u011511577/article/details/54603256 注意FLAG_ACTIVITY_CLEAR_TASKhttp://www.jianshu.com/p/1946bd4f3bb5 当应用被杀死之后,所有数据都会被回收,所以之前设置的app stat...原创 2017-10-17 11:35:24 · 1910 阅读 · 0 评论 -
使用webview几种常见的hybrid通信方式
说起hybrid大家不会陌生,主要意思就是native和h5混合开发。为什么要这样做呢?大家可以想象一下针对于同一个活动,如果使用纯native的开发方式,Android和iOS两边都要维护同一套界面甚至是逻辑,这样开发和维护的成本会很大,而使用hybrid的开发方式的话,让前端的同学去写一套界面和逻辑,对于native端来说只要使用对应的容器去展示就可以了(对于Android来说这个容器当然就是转载 2016-08-31 13:01:28 · 4856 阅读 · 0 评论 -
TextSwitcher文字切换器实现文字上下自动轮播效果
使用TextSwitcher实现文字自动切换功能 TextSwitcher可以在切换View组件时使用动画效果。TextSwitcher需要一个ViewFactory。ViewFactory的makeView()方法必须返回一个TextView组件。 代码如下:// 定义文字切换器 ts = (TextSwitcher) findViewById(原创 2016-06-16 15:35:23 · 3502 阅读 · 0 评论 -
android:animateLayoutChanges属性
一、android:animateLayoutChanges属性在API 11之后,Android为了支持ViewGroup类控件,在添加和移除其中控件时自动添加动画,为我们提供了一个非常简单的属性:android:animateLayoutChanges=[true/false],所有派生自ViewGroup的控件都具有此属性,只要在XML中添加上这个属性,就能实现添加/删除其中控件时,带有转载 2016-06-16 11:47:41 · 3467 阅读 · 1 评论 -
安卓 MediaPlayer 获取MP3 播放时长有关问题
通过MediaPlayer的getDuration()是可以获取MP3的总时长(类似于56541这样的数字的长度,其实就是多少秒的意思);通过MediaPlayer的getCurrentPosition()是可以获取MP3的此时的时长(也就是此时运行了多少秒);想要获得此时播放了多久显示在界面上的话可以直接使用MediaPlayer的getCurrentPosition原创 2016-05-09 14:16:16 · 8348 阅读 · 1 评论 -
EditText屏蔽特殊字符(设置键盘不接受回车。。用URLEncoder.encode()就可以解决)
et_content = (EditText) findViewById(R.id.et_content);et_content.addTextChangedListener(watcher);et_content.setOnEditorActionListener(new OnEditorActionListener() {@Overridepublic bo原创 2016-05-18 17:27:59 · 1135 阅读 · 0 评论 -
VideoView的onPreparedListener
异步的准备 就可以触发onPreparedListener在里面可以设置视频没有开始播放之前为黑色videoView.setOnPreparedListener(p);OnPreparedListener p = new OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp)原创 2016-05-31 14:25:58 · 13088 阅读 · 0 评论 -
Android Studio如何设置代码自动提示
在用Eclipse时候,你可以进行设置,设置成不管你输入任何字母,都能进行代码的提示,在Android Studio中也可以设置,而且比Eclipse设置来的简单。当然如果你觉得代码自动提示会降低你的代码水平,你也可以不设置,在写代码过程中,如果一时忘记了,你就可以用代码提示的快捷键。android studio代码提示的快捷键是什么呢?看这篇文章:【Android Stu转载 2016-05-30 10:39:35 · 1631 阅读 · 0 评论 -
将EditText光标放在文章末尾
@Overridepublic void afterTextChanged(Editable s) {Editable etext = ed_yue.getText();Selection.setSelection(etext, etext.length()); }原创 2016-05-16 13:37:20 · 314 阅读 · 0 评论 -
自定义ProgressBar带进度数字效果
1、HorizontalProgressBarWithNumber1、自定义属性values/attr_progress_bar.xml:原创 2016-05-03 10:38:24 · 3225 阅读 · 0 评论 -
安卓videoView 横屏,全屏显示
videoView的原码中对videoView播放的视频做了一定的处理导致视频不能按你以为的形式呈现在videoView中。首先重写VideoView <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"...原创 2016-05-26 13:49:51 · 5917 阅读 · 2 评论 -
如何去使用一个SurfaceView
首先继承SurfaceView并实现SurfaceHolder.Callback接口。因为使用SurfaceView 有一个原则,所有的绘图工作必须得在Surface 被创建之后才能开始。可以被直接复制到显存从而显示出来,这使得显示速度会非常快,而在Surface 被销毁之前必须结束。所以Callback 中的surfaceCreated 和surfaceDestroyed 就成了绘图处理代码的边转载 2016-05-11 11:20:20 · 510 阅读 · 0 评论 -
ViewPager的setOffscreenPageLimit原理
当我们使用ViewPage控件时,假设我们的ViewPage有三页,当我们第一次启动ViewPage显示第一页的时候,ViewPage会预加载第二页,这样当我们向第二页滑动的时候就可以看见第二页的内容了,因为第二页的内容在第一页内容显示的时候就已经加载了。当我们滑动到第二页时,ViewPage会预加载第三页,这时ViewPage中已经保存了三页的内容:第一页,第二页和第三页,这样当我们在第二页向左转载 2016-04-29 11:07:08 · 758 阅读 · 1 评论 -
android ListView 几个重要属性
首先是stackFromBottom属性,这只该属性之后你做好的列表就会显示你列表的最下面,值为true和falseAndroid:stackFromBottom="true"第二是transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内。通过设置的控件transcriptMode转载 2016-05-24 11:40:54 · 1443 阅读 · 0 评论 -
VideoView的相关方法
public class VideoView extends SurfaceViewimplements MediaController.MediaPlayerControl 构造函数:public VideoView (Context context)创建一个默认属性的VideoView实例。参数context 视图运行的应用程序上下翻译 2016-05-10 11:42:37 · 4765 阅读 · 0 评论