Android
yforyoung
这个作者很懒,什么都没留下…
展开
-
Android 超出x行收缩文字,尾部显示更多,点击展开
目前的需求是:文字如果超出x行则在尾部显示 “全部”,点击展开全部文字,再点击收缩文字,不够三行则正常展示,效果如图大概思路就是: 计算出x行文字总共需要占用多大空间(即 view.width * x), 这个空间减去尾部文字占用的空间,就是x行可显示字数的空间,再将这些字提取出来(直接使用TextUtils来处理),最后做拼接就ok了 fun setMoreString( textView: TextView, moreString: ...原创 2021-11-17 21:30:00 · 3104 阅读 · 1 评论 -
横滑RecyclerView根据item自适应高度
布局文件里RecyclerView和itemView的高度都设置为wrap_content时,按照设想,应该是可以自适应高度的。但实际上出现了如下图的效果:高度在调用notifyDataSetChanged之后按照当前页面可见的item进行自适应出现这种情况是因为RecyclerView只针对当前屏幕显示的itemView进行layout操作,完成高度自适应,在后续的滑动过程中不会再次调用onLayout(),但notifyDataSetChanged会引起onLayout()的调用。通过在onBi原创 2021-01-25 17:41:21 · 1967 阅读 · 1 评论 -
Android DanmakuFlameMaster的踩坑方式
这里根据我用到过的功能填一些坑,但目前也只用到了部分功能,弹幕数据动态衔接的问题还没有遇到,以后遇到添加进来1. 基本使用基本使用看官方demo就行, 官方demo 里注释非常详细,或者看这篇文章: 开源弹幕引擎·烈焰弹幕使(DanmakuFlameMaster)使用解析 private void initDamakuView(String s) { danmakuContext = DanmakuContext.create(); HashMap<.原创 2020-08-25 15:59:03 · 3141 阅读 · 7 评论 -
Android中webView.reload()方法失效
记录一下,刷新网页的方式改为:webview.loadUrl("javascript:window.location.reload(true)");需要允许使用Js原创 2020-08-20 17:43:07 · 5903 阅读 · 1 评论 -
Android中WebView加载失败导致的白屏问题
首先确认不是网页加载导致的白屏,而是WebView没有加载导致的白屏确认这一问题可以在webView.setWebViewClient()中重写onPageStarted()和onPageFinished方法,监听一下是否调用了这两个方法如果调用了onPageStarted()说明是网页加载失败,与webView的初始化无关,可以找找网页的问题。如果两个都没调用,说明webView初始化就失败了,建议使用动态加载webView webview = new WebView(this); //new一个原创 2020-08-18 17:03:59 · 1858 阅读 · 0 评论 -
Android 一个条形动画加载效果
江湖惯例先看效果可以对颜色、线条数、动画幅度、宽度等进行设置,上图只是一个基本的效果~思路先确定了想实现的效果是这样的:整体分为中、高、低三种线,计算出三种线条的位置进行同步绘制确定变化效果是依次降低,低到...原创 2020-07-09 19:06:21 · 877 阅读 · 7 评论 -
Android 报错Failed to load native library: XXXX_so
产生原因:cpu架构不支持so库没有打包到Android下解决方案:第一种可以通过命令adb shell cat /proc/cpuinfo 来查看cpu详细信息,排查架构不支持的问题我这里遇到了第二种问题,因为系统原因,我是通过adb push命令安装的apk,这样so库不会自动导入到lib文件夹下,因此手动将so库push到文件夹下就可以了...原创 2019-10-22 18:00:35 · 3313 阅读 · 0 评论 -
Program type already present Android依赖冲突
针对不同的情况有两种处理方案全局查找冲突的依赖包,去掉一个修改build.gradle文件,使用compileOnly替代implementation,如下:compileOnly fileTree(include: ['*.jar'], dir: 'libs')...原创 2019-09-30 14:05:22 · 2196 阅读 · 0 评论 -
Android WebRTC
引用 :WebRTC之Android客户端版权声明:本文为CSDN博主「-无-怨-无-悔-」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/chenhande1990chenhan/article/details/70862208六、回调函数1.WebSocket回调接口与主要消息处理Candid...转载 2019-09-29 09:54:11 · 720 阅读 · 0 评论 -
Android 对SurfaceView画板内容进行编码
记录一下编码SurfaceView画板内容的骚操作一般来说,视频编码是直接获取视频流进行编码,摄像头和屏幕共享画面属于比较常规的视频流。除此之外,MediaCodec提供了setInputSurface()方法,可以直接对Surface进行编码,但这个Surface需要是一个persistent对象,由MediaCodec.createPersistentInputSurface()创建。...原创 2019-09-10 12:17:35 · 2325 阅读 · 7 评论 -
使用SurfaceView进行远端本地大小画面的切换
画面大小切换很简单,需求注意的地方在于两个画面层级的切换。主要涉及的方法有setZOrderOnTop(boolean onTop)setZOrderMediaOverlay (boolean isMediaOverlay)两个方法都可以设置SurfaceView的层级,但第一个方法是将该SurfaceView设置在当前窗口的最顶层,会遮挡其他所有控件。第二个方法则是将SurfaceV...原创 2019-07-18 11:08:16 · 714 阅读 · 1 评论 -
Android中使用webRTC发送Dtmf信令
发送一个dtmf,搞了两天,我有什么办法,我也很绝望啊,sip与webrtc不可兼得在建立PeerConnection 时,会创建一系列的RtpSender,可通过RtpSender.track().kind()方法来确认我们所需的RtpSender,dtmf的发送需要kind为audio的RtpSender,拿到后再通过RtpSender.dtmf()获取到我们需要的DtmfSender就可以...原创 2019-03-20 12:03:06 · 1250 阅读 · 7 评论 -
Index 3 requested, with a size of 3
使用Cursor时出现了 Index 3 requested, with a size of 3 的报错,当时使用的写法如下: if (c.moveToFirst()) { for (int i = 0; i < c.getCount(); i++) { c.move(i); ...原创 2019-02-18 11:52:32 · 1098 阅读 · 0 评论 -
侧边栏header中布局找不到控件
username = navigationView.getHeaderView(0).findViewById(R.id.username); userState = navigationView.getHeaderView(0).findViewById(R.id.user_state);每次都搞忘getHeaderView()记录原创 2019-02-15 14:40:23 · 257 阅读 · 0 评论 -
Default Activity Not Found 问题总结
最近遇到default activity not found的问题,各种查资料,找方案,了解了很多相关知识,然而没有任何作用,总结一下可能导致的原因吧。AndroidManifest.xml文件中没有声明相应Activity,新手很容易犯的错,所以最好直接用AS快速创建Activity,不需要手动声明。注意为默认启动Activity添加intent-filter。解决方案如下:<...原创 2018-12-11 11:26:24 · 43257 阅读 · 15 评论 -
Android之视图动画的简单使用
1、透明度动画 AlphaAnimation aa = new AlphaAnimation(0, 1);//第一个参数为开始时透明度,第二个为结束时透明度 //0为全透明,1为不透明 aa.setDuration(1000); //设...原创 2018-04-25 20:33:50 · 165 阅读 · 0 评论 -
Android 之 Fragment的动态加载
本篇中使用replace方法进行fragment的替换和显示——————————————————————————————————注意:replace方法会销毁当前fragment,也就是再一次显示的时候会走整个fragment的生命周期,所以推荐使用hide和 show方法来对fragment进行操作 MainActivity.class package...原创 2018-05-05 18:18:29 · 3031 阅读 · 0 评论 -
Android之简易音乐播放器,MediaPlayer的使用
Android之简易音乐播放器,MediaPlayer的使用 当前实现的音乐播放器的功能有:获取本地音乐、音乐播放、暂停、歌曲切换、进度条显示、进度条控制播放位置等基本功能主要使用了:RecyclerView显示音乐列表MediaPlayer播放音乐SeekBar显示进度条并控制音乐进度ContentProvider获取本地音乐完成后效果如下: MainActivity.class publi...原创 2018-04-28 17:52:51 · 1850 阅读 · 2 评论 -
OkHttp的简单封装
直接使用原生的OkHttp请求网络,尽管简单易懂,但每次需要写大量重复的代码,实在有些疲惫,于是进行一个简单的封装,只对最基本网络请求这一块进行了简单的处理,但有了这最基本的处理,之后再拓展应该会简单许多。————更新一个问题——————在我下面的写法中用到了handler,获取了主线程,请求成功或失败时候将数据分发到主线程进行处理,此处有可能出现NetworkOnMainThreadEx...原创 2018-07-17 10:49:35 · 316 阅读 · 1 评论 -
Andriod wifi自定义排序
自定义Comparator,按照已连接、已保存、信号由强到弱进行排序很简单的一个东西但是搞了很久,记录一下智障的自己public class WifiComparator implements Comparator { @Override public int compare(Object o1, Object o2) { Wifi w1 = (Wifi...原创 2018-08-09 12:35:34 · 373 阅读 · 3 评论 -
Android 自定义wifi扫描以及遇到的坑
先上效果图实现其实很简单,就是WifiManager的各种调用,下面要说的是一些注意事项和踩到的坑<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.CHANGE_NET...原创 2018-08-06 17:42:53 · 2124 阅读 · 4 评论 -
Android 项目打包时出现“TaskExecutionException :':app:mergeReleaseResources'”
项目打包时出现了一个非常痛苦的错误:Error:java.util.concurrent.ExecutionException:com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details可能造成Aapt报错的原因:1.gradle缓存地址包含中文,改掉就行 sett...原创 2018-08-08 11:52:23 · 9905 阅读 · 1 评论 -
Android 状态栏透明
step1:<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><!--设置为NoActionBar--> <!-- Customize your theme here. --> <item name="colorPrimary"原创 2018-08-13 11:44:44 · 2168 阅读 · 1 评论 -
Android替换原系统应用——Launcher为例
PS:注意备份系统!!!千万注意备份系统!!随时可能重刷!!不同的设备可能对launcher入口要求不同,可能有些需要将文件名修改成原生一样的,有些不用,以及各种莫名其妙的bug,看情况排查,我4个设备,两个成功替换,两个疯狂崩溃…… 更改系统Launcher主要是对/system/app/Launcher-release/下的apk文件进行替换,替换步骤很简单,只是要注意/sys...原创 2018-08-23 11:54:42 · 9623 阅读 · 0 评论 -
Android RecyclerView点击item放大效果越界不显示
TV开发时候需要一个获取焦点后元素放大的效果想要的是这种:但是得到的是这种:子元素被父元素裁减了,可以使用设置属性来解决,重要的是这个属性的位置需要设置在爷爷布局中,也就是RecyclerView的父布局中 android:clipChildren="false" ...原创 2018-09-28 17:36:47 · 1677 阅读 · 0 评论 -
Android自定义View之Canvas绘图
Canvas为绘图提供了以下几个非常有用的方法:Canvas.save()Canvas.restore()Canvas.translate()Canvas.rotate() Canvas.save(),字面理解为保存画布,类似于photoshop的图层,保存之后的操作类似于在新图层上作画。Canvas.restore(),类似于图层合并的操作,作用是将save()之后绘制的图像与save()之前的...原创 2018-04-19 21:12:30 · 889 阅读 · 0 评论