自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Android 动态生成 radiobutton 解决 radiogroup 多行显示的问题 单选

项目有需求,然后看了下网上的方法,好多都太麻烦了,而且也不怎么靠谱。。先上效果图先上布局的代码

2017-04-09 01:57:02 3643

原创 Android radiobutton 利用 SpannableString 实现图文混排 实现 iOS segmentcontrol效果

IOS上有个控件是segmentcontrol,但是android没有。。。但是android有各种第三方的segmentcontrol实现的第三方,但是现成的里面的都是文字,所以需要稍微更改一下,用SpannableString来实现图文混排的效果,而按压的效果,我是通过代码动态控制的。。。先看下效果两个radiobutton外面套的是第三方的 SegmentedGrou

2017-04-09 01:35:39 1252

原创 Android 利用JS 实现对网络图片添加点击事件 查看大图

直接上代码好了,原理就是遍历h5标签,找到图片,给图片添加点击事件。。。。js代码中有个小坑就是涉及到了js的闭包问题,for循环取i。。。。public class WebViewFragment extends Fragment implements MvpView { private WebView contentWebView = null; String conten

2017-03-17 18:00:22 1679

原创 Android multitype Recyclerview 设置间距 itemdecoration

最近用到multitype的场景比较多,基本上,用到recyclerview就需要用到Multitype,因为很方便。。。。但是在给myltitype的item设置间距的时候遇到了一些问题,因为排列是不规则的,所以想要指定一些item的间距,需要设置一下。。。先上效果图。。 这里每个switchbar的一行,每个标题一行,每个图片,都是一种Item,

2017-03-17 17:46:38 1342

原创 Android 自定义View 滑动解锁

自定义view来绘制一个类似滑动解锁的button,注释都在,效果如下代码在下面,替换一下资源,可以直接使用,如果需要画的是圆角的话,需要把下面两行注释的DrawLine的注释打开,然后把两行drawRoundRect注释掉。package com.vendingontrack.vendcoin.customView;import android.animation.ObjectAnimator;import android.content.Context;impor...

2020-12-22 02:01:40 541

原创 Android NFC 写入包名,NDEF数据,唤醒 指定 APP 跳转 指定 页面Activity,读取数据处理

先放GITHUB 链接,可以直接跑一下代码体验一下https://github.com/TracyEminem/NFCNDEF配置NFC相关的权限<!-- 添加NFC权限 --><uses-permission android:name="android.permission.NFC" /> <!-- 要求当前设备必须要有NFC芯片 --><uses-feature android:name="android.hardware.nfc" .

2020-08-10 14:03:10 3823 12

原创 BottomSheetDialogFragment 自定义高度 显示完全

BottomSheetDialogFragment 默认的显示方式,是有一小段是要自己滑上来的,那么如何让他显示完全呢。。。直接上代码吧,原理啥的大家也估计不爱看。。。网上大多数的代码都是有问题的,跑不了的。。。直接在onstart里面加上下面的代码就OK了override fun onStart() { super.onStart() val di...

2019-08-23 17:24:48 3133

原创 Android 利用 Multitype 实现 抖音/新闻评论列表,二级评论列表

最近在做一个和抖音差不多的软件,评论的列表之前在VG实习的时候就做过,但是还是想看看抖音是怎么做的,然后利用SDK内自带的Android Device Monitor 对抖音的评论的布局进行了查看,再结合反编译抖音发现的Multitype包,大概知道了抖音和我的实现方式是一样的,把parentcomment和childcomment和加载更多的footer分别作为一种Item放在一个recycle...

2019-07-17 17:29:33 5204 10

原创 Android 利用ConstraintLayout 实现仿抖音点赞动画效果

正好在做一个和抖音差不多的APP,目前在刚启动阶段,先从实现一个抖音的点赞动画开始。。。爱心是从阿里的矢量图标库下载的一个爱心的Png图片,不是使用贝塞尔曲线画的。。。原因是我不会贝塞尔曲线(其实就是菜)我使用的是Androidx的包,如果使用的老的Support的包,请自行替换。代码是kotlin实现的,需要java的请自行翻译。最后使用方式,就是在xml文件中直接当成ConstraintLay...

2019-06-23 00:15:10 3513 1

原创 高德地图 Error ErrCode7 解决方案

当使用高德地图SDK时候,申请KEY需要输入本地的SHA1值,但是有时候在命令行获取的SHA1值是不对的。。。如果最方便的获取最正确的SHA1值的方法,应该是直接在项目代码中获取,然后自己每2个字符串加上:,代码如下public static String sHA1(Context context) {try {PackageInfo info = context.getPackageM...

2019-05-30 14:25:47 3041 2

原创 java实现二叉树及二叉树的四种遍历方式

首先定义一个节点class TreeNode { int key; TreeNode left; TreeNode right; public TreeNode(int key) { left = null; right = null; this.key = key; }}然后我们实现建...

2019-02-26 16:10:52 5581

原创 Kotlin ? 和 ?. 和 ?: 和 as? 和 !! 运算符比较

? 代表可空的数据类型fun StrLen(s:String?):Int = s.length //不能直接调用length方法//1、这里使用了可空类型?,?可以加载任何类型的后面来表示这个类型的变量可以为null//2、可空类型的变量在使用的时候不能直接调用它的方法//3、也不能把可空类型的值传给非空类型/***如 val x:String?=null var y:Stri...

2019-02-20 11:36:53 939

原创 动态代理 死循环内存溢出 解决方法

       在实现动态 代理的时候发现一个问题,就是运行的时候在不断循环执行InvocationHandler中的的invoce方法,导致内存溢出,后面排查原因,发现是在invoke内部没有使用被代理的对象,而是使用了方法中传入的Object参数。public class TracyEminem&lt;T&gt; implements InvocationHandler { ...

2019-02-11 10:56:55 1183 1

原创 Android 8.0 蓝牙唤醒 Ble 锁屏 保活 后台 持续扫描 进程拉活 自动唤醒

主要是api的说明,嫌啰嗦的可以直接看demo,demo中有个检测锁屏时间重复开启扫描的代码,主要是如果APP没有获得电量或者后台运行的权限,只能持续后台运行几小时。这个demo的作用是实现8.0以后的后台监测到特定蓝牙信号自动唤醒APP的功能,首先需要另外一个装了可以发射蓝牙信号软件的手机,我这边是选取的ios平台上的lightblue,然后在这个软件里面新建一个虚拟设备名称是要demo搜索...

2018-12-26 23:48:59 12308 10

原创 android switch控件通过thumb track简单实现IOS控件UISwitch,SwitchButton

之前用到Switch控件的时候一直用的安卓原生的,但是最近UI要求要实现和IOS类似的效果,然后发现了Switch控件的thumb和track属性。。。先看效果,,,thumb属性指的是:switch上面滑动的滑块。。。track属性是指switch的背景。。。设置好这两个属性就能把switch做成像IOS的UISwitch控件的样子了。。。看代码 &lt;Switch ...

2018-10-09 22:35:48 681

原创 JAVA设计模式之6种单例模式详解

单例会把默认的构造方法设为Private,让类自己来创建实例。。 第一种写法,饿汉式:public class HungurySingleton { //缺点,无法延时加载,没有使用就已经加载了 private static final HungurySingleton mInstance = new HungurySingleton(); private Hun...

2018-08-14 23:27:02 1093

原创 JAVA设计模式代码~持续更新

 代码在https://github.com/TracyEminem/Design-pattern-java   包括定义,使用场景,优缺点。

2018-07-22 17:58:16 179

原创 Butterknife8.8.1 gradle3.0错误 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;

在gradle3.0.1的情况下,使用butterknife8.8.1会报错,错误如下Error:Unable to find method 'com.android.build.gradle.api.BaseVariant.getOutputs()Ljava/util/List;'.网上的很多解决方案都有点问题,有些是让你降级gradle版本的,有些是让你降级butterknife版本的。。。J...

2018-07-15 23:22:58 942 1

原创 Android 修改包名 和No matching client found for package name 错误的解决方案

最近遇到了Google Play上面的App Signing的问题,同事上传的时候,默认打开了这个配置,这个功能会导致google在我们的应用上传后,自动替换掉我们的签名,会导致各种第三方的服务无法使用。。。我咨询过google的客服,这个功能是无法关闭的,所以只能修改包名,换成一个新的应用重新上传。。。修改包名的步骤是,先点击设置取消掉这和钩,然后Shift + F6更换你想改的包名,然后去ma...

2018-06-27 14:06:22 11613 2

原创 AgentWeb WebView 与 Android交互 JS调用 Android

        WebView 与Android 交互的方法网上一大把,大概是自定义一个方法,加上@JavascriptInterface注解, @JavascriptInterface public void BackToAndroid(){ Log.e("EEEEE","-+++++++-++++++----"); }然后mWebview.addJavas...

2018-06-15 10:48:15 7114 1

原创 Realm 错误 Execution failed for task

使用realm的过程中出现了一个问题Execution failed for task ,开始以为是引入的问题,后来发现,真正的原因是我在让一个类继承自realmobject后,添加了一个带参数的构造方法,但是却忘记了添加默认的构造方法。。。realm的引导里面明确的告诉了我们,如果添加了构造方法后,必须添加一个默认的构造方法。。。...

2018-06-05 17:16:56 271

原创 友盟第三方登录 无法切换账号 退出 取消授权

            友盟第三方登录后,哪怕你卸载了微博/qq这些客户端,你点击上次登录的方式还是能正常登录的,不需要重新授权。。导致一个问题,比如我先用这个QQ登录 后,想换另外一个QQ登录会导致无法登录,哪怕退出QQ,卸载客户端,还是能够成功授权。        UMShareConfig config = new UMShareConfig();config.isNeedAuthOnGet...

2018-04-20 15:18:32 3146 3

原创 延迟搜索,RXJAVA debounce 实现 RX SEARCH

这个就是Rxsearch,在searchview的基础上进行延伸。。。public class RxSearch { public static Observable&lt;String&gt; fromSearchView(@NonNull final SearchView searchView) { final BehaviorSubject&lt;String...

2018-01-23 23:53:47 1098

原创 Fresco 加载 bitmap ,bitmap 转 Uri

Uri uri = Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(),bitmap,null,null));

2018-01-22 18:59:57 3476 1

原创 Android 8.0 广色域图像的支持导致Fresco报错无法显示的BUG bitmap marked for reuse (xxxx bytes) can't fit new bitmap (xx

突然发现,8、0以上的手机用Fresco展示某些图片的时候,会出现无法加载的情况,报错bitmap marked for reuse (xxxx bytes) can't fit new bitmap (xxxx bytes)开始不知道以为OOM,换了图片大小还是不行。。。后面去Fresco的github的issue下找到了相同的问题。。。Fresco官方给出的解决方法是,替换

2018-01-21 23:46:51 1771 1

原创 android Rxjava interval 操作符实现 倒计时功能

currentTime = System.currentTimeMillis()/1000; terminal = Long.valueOf(detailData.getDeadline_timestamp()) -currentTime; if(subscription.isUnsubscribed() && terminal >

2018-01-04 20:29:45 1204

原创 X5 webview 真正 全屏 播放 ,小屏变全屏 一篇就够了 很简单

布局代码如下 <FrameLayout android:id="@+id/webView" android:layout_width="match_parent" android:layout_height="200dp"/>JAVA代码如下。。。 @Bind(R.id.

2017-12-29 11:29:40 6615

原创 Recyclerview 加载更多 EndlessRecyclerViewScrollListener 和 SwipeRefreshLayout刷新后 无法加载更多

之前用的一个加载更多的代码是网上的EndlessRecyclerViewScrollListener  发现有个问题,平时加载更多没有任何问题。但是 和SwipeRefreshLayout 使用时,下拉刷新的时候,就无法再加载更多了,。EndlessRecyclerViewScrollListener 代码如下public abstract class EndlessRecyclerVie

2017-12-19 11:27:22 831

原创 Fragment + viewpager 实现 懒加载 封装

fragment实现懒加载,有几个前提,首先是fragment已经执行了oncreateview方法(isPrepared),其次是fragment可见(isVisiable),最后是fragment需要的数据没有加载过(isNotLoad)。。。最重要的是,你的viewpager得给所有的fragment开启缓存满足这三个条件,fragment才需要进行懒加载操作。。。publi

2017-12-18 23:23:43 237

原创 recyclerview 通用gridlayoutmanger itemdecoration 间距。。可以含头部

recyclerview使用的时候,大多数时候会用到复杂布局,一个页面从上到下,有多种布局,spancount不为1,这个时候,用两种recyclerview又很麻烦,所以需要这个itemdecoration来设置间距。。。先来看一个实例布局。。。整个布局除了底部导航栏和上部的toolbar,都是一个recyclerview中,banner 和 中间那块导航

2017-11-29 23:06:26 2074 2

原创 Android 底部突起 导航栏 实现 ClipChildren

有个需求要实现底部的导航栏,但是图片是要凸起的,超越父控件的。。。原本想用radiobutton实现的,然后发现设置图片的时候无法设置准确大小和方向,而且代码动态设置的话,感觉也有点烦。。。所以直接5个布局,写死,然后自己手动换图片和文字颜色好了。。。先上效果图。。。每个图片的大小也是不同的,这种布局方式出现的问题是,图片要超过父布局,这个时候就要用到clipChildren

2017-11-29 18:29:56 3989 2

原创 Android 录音 输出格式 mp4编码aac 后缀改成mp3 在IOS端也能播放

具体如何录音的代码就不上了,网上一大堆,基本上都是一样的。。。 MediaRecorder mRecorder = new MediaRecorder(); mRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mRecorder.setOutputFormat(MediaReco

2017-11-09 11:20:05 1866 1

原创 Fresco SimpleDraweeView 加载本地的gif

文档写的不是很清楚,只有加载网络的gif,,,,本地的应该是这样加载的 Uri uri = new Uri.Builder() .scheme(UriUtil.LOCAL_RESOURCE_SCHEME) .path(String.valueOf(R.drawable.gif_test))

2017-10-21 15:07:40 4047 1

原创 fragment 中使用 setUserVisibleHint 懒加载遇到的坑

在viewpager + fragment 联合使用时,利用setUserVisibleHint进行懒加载时,发现并不适用于view的操作。。。因为setUserVisibleHint是早于oncreateview之前执行的,所以会报空指针,用一段代码演示一下 @Override public void setUserVisibleHint(boolean isVisible

2017-09-11 22:45:45 6135 2

原创 Android 利用 RXJAVA interval 操作符 实现 计时器 功能

原理是利用interval操作符每1秒刷新一下UI。。代码如下 int currentMillers = 0; String Minute; String seconds; Observable.interval(0,1, TimeUnit.SECONDS) .subscribeOn(Schedulers.io())

2017-08-18 18:42:05 5812

原创 Android WebView 真正播放视频 全屏 横屏播放

WebView是个大坑,需求是希望点击一个视频链接跳转到网页上播放视频,然后点击全屏能自动横屏。。。查了很多东西,最后直接上代码吧,注释都在,直接看吧,使用也很简单,直接把URL传到这个Activity就行了,如果你的网站的视频是flash播放的话,会出现空白的情况,无法播放。。。所以必须是H5的。。package com.gogosu.gogosuandroid.ui.str

2017-08-17 13:01:37 8546 3

原创 Android 与 JS交互之取出 链接

和之前取出图片的思路一样,遍历所有节点,取出链接public class MyWebViewClient extends WebViewClient{ @Override public void onPageFinished(WebView view, String url) { view.getSettings().setJavaScrip

2017-08-16 23:51:59 389

原创 NestedScrollview 嵌套 RecyclerView 滑动卡顿,ScrollView 嵌套 RecyclerView 冲突 解决方案

用 ScrollView 嵌套 RecyclerView 的时候会出现 冲突的情况,这个时候,很多人都知道要使用 NestedScrollView来替换 ScrollView...但是,当NestedScrollview 嵌套 RecyclerView 时,滑动到底,再上滑的时候,会出现卡顿的情况,滑动的时候一顿一顿,体验极其不好。。解决这个问题的方案就是加上下面几句话:

2017-06-26 18:59:24 10222

转载 Retrofit 注解 详解

写在前面本篇文章基于retrofit-2.1进行分析.1. 各个注解的含义及使用1.1 Body注解:作用于方法的参数使用该注解定义的参数不可为null当你发送一个post或put请求,但是又不想作为请求参数或表单的方式发送请求时,使用该注解定义的参数可以直接传入一个实体类,retrofit会通过convert把该实体序列化并将序列化后的结果直接作为请求体发送出去.示例: //实体

2017-04-09 12:23:41 1492

原创 Android Studio 集成 ShareSDK 如何 覆盖 文件夹

又一次用到ShareSDK,之前用过一次,卡在那个复制文件夹到自己工程中的阶段。。。官方文档简直扯淡,一句话就概括了,今天又用到了,又卡了一下。。。刚才整理了一下,该怎么把得到的文件夹放入自己的工程中。。下载官方的SDK就不说了,生成那些文件夹也不说了,官网说的有问题,我是mac,和win一样直接打开那个文件就行,会自动生成文件。。。生成的文件是在下载的SDK的ShareSDK

2017-01-23 19:29:09 1035

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除