
android
文章平均质量分 71
kuixun
我之所以伟大是因为我站在巨人的肩膀上
展开
-
CoordinatorLayout 完全解析
原文:https://www.jianshu.com/p/4a77ae4cd82f一、CoordinatorLayout 的作用CoordinatorLayout 作为一个 “super-powered FrameLayout”,主要有以下两个作用:作为顶层布局;作为协调子 View 之间交互的容器。使用 CoordinatorLayout 需要在 build.gradle 加入:compile ...转载 2018-05-13 12:39:33 · 2566 阅读 · 0 评论 -
MPAndroidChart
刷新invalidate() : 在chart中调用会使其刷新重绘notifyDataSetChanged() : 让chart知道它依赖的基础数据已经改变,并执行所有必要的重新计算(比如偏移量,legend,最大值,最小值 …)。在动态添加数据时需要用到。三、打印日志setLogEnabled(boolean enabled) : 设置为true将激活chart的logcat输出。但这不利于...转载 2018-06-22 11:58:50 · 1616 阅读 · 0 评论 -
打包某些输入文件使用或覆盖了已过时的 API 已解决
Error:注: 某些输入文件使用或覆盖了已过时的 API。注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。注: 某些输入文件使用了未经检查或不安全的操作。注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。FAILURE: Build failed with an exception.* What went wrong:Execution fa...原创 2018-04-20 18:48:51 · 18014 阅读 · 0 评论 -
Parcelable使用详解
想要在两个activity之间传递对象,那么这个对象必须序列化,android中序列化一个对象有两种方式,一种是实现Serializable接口,这个非常简单,只需要声明一下就可以了,不痛不痒。但是android中还有一种特有的序列化方法,那就是实现Parcelable接口,使用这种方式来序列化的效率要高于实现Serializable接口。不过Serializable接口实在是太方便了,因此在某些...转载 2018-05-13 12:41:00 · 485 阅读 · 0 评论 -
Retrofit2
原文:https://www.jianshu.com/p/308f3c54abdd本文注目录:Retrofit入门Retrofit注解详解Gson与ConverterRxJava与CallAdapter自定义Converter自定义CallAdapter其它说明前言本文中的Retrofit均指代Retrofit2.0。本文涉及到的代码以及测试使用的接口可在Github上找到。测试接口服务器在 se...转载 2018-05-13 12:41:17 · 210 阅读 · 0 评论 -
rxjava2
rxjava1:给 Android 开发者的 RxJava 详解下面文章的代码下载地址:https://github.com/nanchen2251/RxJava2Examples001.与RxJava 1.x的差异其实,我标题为入门教程,按理说应该从简单入门开始讲的,原谅我突然偏题了,因为我觉得可能大多数人都了解或者使用过RxJava 1.x(因为它真的太棒了)。虽然可能熟悉1.x 的你可以直接...转载 2018-05-13 12:40:49 · 588 阅读 · 0 评论 -
android重力监听
package com.PinusBungeana.shipin;import android.app.Activity;import android.os.Bundle;import android.support.annotation.Nullable;import android.view.OrientationEventListener;import android.view....原创 2018-02-23 14:07:40 · 391 阅读 · 0 评论 -
jni send byte array to java
JNIEXPORT jobjectArray JNICALLJava_ArrayHandler_returnArray (JNIEnv *env, jobject jobj){ jobjectArray ret; int i; char *message[5]= {"first", "second",原创 2018-02-05 14:15:46 · 254 阅读 · 0 评论 -
Dagger2
通过之前的介绍,在Activity中通过触发了Dagger的注入机制。然后Dagger扫描当前Activity有个的对象需要被注入://带参数的注入然后按照之前的介绍,Dagger将会在的类中搜索使用@Inject注释了的构造方法,并用他来创建对象。但是这里的中的构造方法没有使用@Inject来注释,说明无法直接注入。接下来Dagger就会在Component中搜索被注册的modules有哪些,结果找到了。然后在中搜索同时具备如下条件的注入类:通过@Provides注释的方法。原创 2018-04-27 18:11:08 · 352 阅读 · 1 评论 -
Lifecycle LiveData LiveData LiveData
Android 架构组件(一)——Lifecycle-Aware Components有一天“谷歌开发者”官微推送了《正式发布 Android 架构组件 1.0 稳定版 | 附带中文介绍视频》,发现这种架构足够秒杀MVP、MVVM,虽然之前的Google I/O大会中也介绍过,但是这次推出是稳定版,而且是可以投入到生产中去。于是就顺着这篇去官网看了使用文档——《Guide to App Archi...转载 2018-05-13 12:40:28 · 1816 阅读 · 0 评论 -
android使用kivy集成python的youtube-dl代码笔记
去这里 https://pypi.org/project/colorama/#files 下载 colorama-0.4.1.tar.gz。去这里 https://pypi.org/project/appdirs/#files 下载 appdirs-0.4.1.tar.gz。(1).https://pypi.org/project/sh/#files 下载sh-1...14.tar.gz。修改序号2里面的 ANDROIDAPI。在 .bash_profile 中添加。原创 2018-12-19 17:04:56 · 1589 阅读 · 1 评论 -
mac 上的 android studio 安装运行 python
环境:mac os 10.12.6;android studio 3.0.11.安装python1)要安装Homebrew,打开Terminal或您喜欢的OSX终端模拟器并运行下面的命令:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"...原创 2018-11-29 11:16:43 · 2953 阅读 · 1 评论 -
android混淆
前言这阵子自己的心又长草了,静不下来~又挺迷茫的!在这个纷纷跳槽的季节,感觉还是应该让自己静下心来多学习学习。还是写写博客,总结总结~梳理下心里的野草。上个月跟朋友讨论了这么一问题:“项目上线之后由于代码被混淆的缘故,导致收集到的异常信息看着很困难”,刚好最近在复习混淆方面的知识,在总结混淆的知识点的同时,顺便探讨总结下这问题。项目上线肯定避免不了的是对项目进行混淆、打包、签名和发布,可能...转载 2018-08-14 14:13:35 · 4817 阅读 · 0 评论 -
EventBus
概念:Event:事件(订阅者根据事件来判断是否接收事件) Subscriber:事件订阅者,接收特定的事件。 Publisher:事件发布者,用于通知Subscriber有事件发生。 其中,Event可以使任意类型对象。Subscriber都是以约定的onEvent开头的函数,具体是onEvent,onEventMainThread,onEventBackgroundThread,o...转载 2018-07-06 13:59:08 · 317 阅读 · 0 评论 -
编写高效的Android代码
毫无疑问,基于Android平台的设备一定是嵌入式设备。现代的手持设备不仅仅是一部电话那么简单,它还是一个小型的手持电脑,但是,即使是最快的最高端的手持设备也远远比不上一个中等性能的桌面机。这就是为什么在编写Android程序时要时刻考虑执行的效率,这些系统不是想象中的那么快,并且你还要考虑它电池的续航能力。这就意味着没有多少剩余空间给你去浪费了,因此,在你写Android程序的时候,要尽可能的使...转载 2018-06-26 19:53:43 · 402 阅读 · 0 评论 -
ConstraintLayout
部分转:ConstraintLayout 属性详解 和Chain的使用Relative positioning --- 相对定位 Margins --- 间距 Centering positioning --- 中心定位 Circular positioning --- 圆形定位(这个有意思,做环形按钮应该很棒) Visibility behavior --- 可见性行为 Di...转载 2018-06-19 18:32:19 · 490 阅读 · 0 评论 -
BottomNavigationView
xml:<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/ap...原创 2018-05-22 09:58:20 · 288 阅读 · 0 评论 -
adb抓包
1. 手机要有root权限2. 下载tcpdump http://www.strazzere.com/android/tcpdump3. adb push C:\Users\zhangkuixun\Downloads\tcpdump /data/local/tcpdump4. adb shell chmod 6755 /data/local/tcpdump原创 2017-07-22 12:09:12 · 1744 阅读 · 0 评论 -
android tv 按键
@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_0: Toast.toastInfo(this, "你按下数字键0"); break; case原创 2017-03-24 17:13:49 · 2110 阅读 · 0 评论 -
加载网络图片
最近了解了一下网络加载图片,很想感谢一下我学习的博客地址,没找到地址。原理是这样的:1.先把图片的url和ImageView放到WeakHashMap中,然后再让WeakHashMap支持多数据同步。2.先从自己生成的内存缓存类(MemoryCache)中查找图片,缓存查找图片较快。 此类是存图片用的:MemoryCache使用了弱引用,内存不够时自动清理3.如果原创 2016-04-10 16:38:38 · 542 阅读 · 0 评论 -
Android 滑动回弹效果
原理:addHeaderView里做的事:1.测量出header的宽高,调用了measureView方法2.设置LayoutParams,宽:MATCH_PARENT,高:103.设置topMargin的值为负的header的高度,即将header隐藏在屏幕最上方onInterceptTouchEvent:如果滑动距离为零,让onInterceptTouchEven原创 2016-03-15 23:47:11 · 2303 阅读 · 1 评论 -
解析下拉图片放大
原理:生成一个FrameLayout,然后装载ImageView,在手指按下的时候设置初始值mLastMotionY、mActivePointerId、mMaxScale、mLastScale;在手指移动的时候动态的改变localLayoutParams.height;当手指抬起时,生成一个Runnable,设置缩放动画,更改localLayoutParams.heightpu原创 2016-04-02 23:55:19 · 873 阅读 · 0 评论 -
局部刷新ListView,实现点赞功能
今天看到一个需要实现一个点赞的功能。自己想没想明白,后来看了http://blog.youkuaiyun.com/nupt123456789/article/details/39432781 这篇博客,才有了思路。特意感谢这是我要用的ListView的item。要给ListView设置单个刷新,实现点击事件。1.布局 (不要问我为什么是绝对布局,,我开心) android:原创 2016-03-07 21:15:48 · 5162 阅读 · 1 评论 -
Android批量文件上传
在百度完所有的的批量上传文件或图片无果之后。要么写的太渣、要么写的太乱,反正没让我看懂,最终决定进下心来自己写........有这么一个需求,“我要上传姓名、身份证号、机构代码、身份证照片、营业执照、组织机构图”其实很简单用MultipartEntity类就可以完成数据的传送, 我最开始用的是NameValuePair这个类,这个类只能存以String为键值的类型,接着我就走入误区,把文件原创 2015-11-19 22:23:40 · 3206 阅读 · 1 评论 -
FragmentTransaction add vs replace
使用 FragmentTransaction 的时候,它提供了这样两个方法,一个 add , 一个 replace ,对这两个方法的区别一直有点疑惑。我觉得使用 add 的话,在按返回键应该是回退到上一个 Fragment,而使用 replace 的话,那个别 replace 的就已经不存在了,所以就不会回退了。但事实不是这样子的。add 和 replace 影响的只是界面,而控制回退的,是事务。add 是把一个fragment添加到一个容器 container 里。原创 2015-08-19 00:09:01 · 863 阅读 · 1 评论 -
PinnedSectionListView原理完全透析
原理是这样的:先说明一下三个名称: 吸附条: 没有阴影,有颜色的条目 吸附条副本: 第一个显示的有颜色加上有阴影的条目 下一个吸附条: 屏幕中显示的第二个有颜色的条目Adapter的类型有两种,一种是有颜色的(吸附条类型),一种是白色的。然后把数据和listview绑定到Adapter上。listview开始滚动:原创 2016-04-15 16:27:25 · 599 阅读 · 0 评论 -
android 保存网络图片到本地
//是否存在sdcard.public boolean isSdcard() { try { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); } catch (Exception e) { e.printStackTrace();原创 2016-05-02 13:11:08 · 1008 阅读 · 0 评论 -
盒子升级apk
/** * 创建文件夹 * * getFilesDir()不能使用安装目录,“解析程序包时出现问题” * Environment.getRootDirectory() 无法更改文件读写权限 * getCacheDir()不能再此目录创建文件,再放入apk,也会提示“解析程序包时出现问题” */public static String createFilePath(Context c原创 2017-08-09 11:16:18 · 488 阅读 · 0 评论 -
设置文字突出变色显示
public class VideoHomeActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.vi原创 2017-05-26 15:19:33 · 822 阅读 · 0 评论 -
Viewpager+Fragment滑动更改ListView数据和设置title文字的变化
设置ListView的数据更改只有几行代码,不用说了;;源码在下边,免费设置title的文字的变化:给ViewPager设置监听器,Viewpager变化的时候,给文字添加渐变,滑动完成后设置文字最终的大小主要代码如下:/** * ViewPager切换监听方法 */public ViewPager.OnPageChangeListener pageListener =原创 2016-03-13 23:01:23 · 1491 阅读 · 4 评论 -
android 代码+xml 设置光标颜色
先说在Java代码设置:1. 在此目录建立:src/drawable/cursor_color.xmlxml version="1.0" encoding="utf-8"?>xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> android:c原创 2016-04-22 14:01:40 · 2259 阅读 · 1 评论 -
加载网络图片显示大图
1.将图片的uri列表和下标传给ImagePagerActivitypublic void imageBrower(int position, ArrayList urls2) { Intent intent = new Intent(this, ImagePagerActivity.class); intent.putExtra(ImagePagerActivity.EX原创 2016-03-02 23:10:33 · 1585 阅读 · 1 评论 -
点击Gallery弹出对应的Gallery大图
今天遇到了这么一个问题,给3个相应的缩略图,点击缩略图弹出的相应的缩略图片的大图。解决办法:setSelection,注意这个方法是Gallery的。(下面代码功能:缩略图可以左右滑动;弹出大图可以左右滑动;点A缩略图,显示A大图。点击B大图,显示B大图。并且 不影响滑动)代码:我的代码有点长,如果你已经有思路,就直接去百度一下setSelection();1. xml原创 2015-11-24 21:22:18 · 1459 阅读 · 0 评论 -
HorizontalScrollView嵌套在ListView,实现从右向左滑动单个删除,当滑动出来后,解决HorizontalScrollView被ListView回收+多个删除
此程序运行在720x1280的屏幕上本身是想写一个:HorizontalScrollView和ScrollView冲突的文章,后来写着写着就变成了HorizontalScrollView嵌套在ListView被回收问题了。解决这个问题的思路:生成一个装int类型的position数组,这个数组用来记录哪个item是被滑动了(也就是删除漏出来的),也就是说如果删除是漏出来原创 2016-05-11 08:50:44 · 2073 阅读 · 0 评论 -
android中调用requestFocus()的详细过程
view中 public boolean requestFocus(int direction, Rect previouslyFocusedRect) { return requestFocusNoSearch(direction, previouslyFocusedRect); }private boolean requestFocusN...原创 2019-06-22 11:50:22 · 2500 阅读 · 0 评论