![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android
文章平均质量分 55
WillWolf_Wang
胸有雷而面如湖色。
展开
-
从 byte 数组中查找匹配内容的索引
从 byte 数组中找到匹配内容的索引原创 2022-10-11 10:37:51 · 1754 阅读 · 1 评论 -
Android 悬浮窗不拦截点击事件
Android 悬浮窗不拦截点击事件悬浮窗基本设置代码如下:windowManager = (WindowManager) getApplication().getSystemService(Context.WINDOW_SERVICE);layoutParams = new WindowManager.LayoutParams();if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { layoutParams.type = Win原创 2021-10-15 10:47:35 · 7001 阅读 · 0 评论 -
Android 选取 Bitmap 上点的控件布局
创建一个放大选点的布局在工作中,遇到了一个需求,需要选中图片上的某个位置,获得对应图像的坐标,如果直接用手去触摸,误差太大,我们想到的一个方式时,触摸图片后,用另外一个 ImageView 显示触摸点附近的一个范围的局部放大图像,随着手指的移动,局部放大图像也会跟着移动,为了防止局部图像移动太快,设定局部图像移动的距离是手指移动的十分之一,这样可以更好的控制移动距离。···public class ImageDotLayout extends FrameLayout {//放图片的 imageVie原创 2021-05-20 13:59:37 · 247 阅读 · 0 评论 -
Android 播放本地 ts 格式视频
Android 播放本地 ts 格式视频上一篇文件讲述了如何录制 ts 格式的视频,那么如何播放录好的 ts 格式视频呢。我一开始使用 MediaPlayer + SurfaceView 组合实现,我在代码中加了一个 mp4 格式的过滤,导致我播放时没有播放成功,误以为 MediaPlayer 不支持 ts 格式视频,看许多文档说明,也都是说 MediaPlayer 支持的格式为 mp4,3gp,mkv,webm,让我更确信了这点。搜索 Google 文档,官方文档说 ExoPlayer 这个播放器功原创 2020-07-14 18:30:45 · 8499 阅读 · 0 评论 -
使用 MediaRecorder实现分段录制视频
使用 MediaRecorder实现分段录制视频使用 MediaCodec 和 MediaMuxer 也可以实现分段录制视频,而也是一直这样做,但是遇到一个问题,就是 MediaMuxer 的 OutputFormat 支持 4 种格式,分别是 MUXER_OUTPUT_MPEG_4、MUXER_OUTPUT_WEBM、MUXER_OUTPUT_3GPP、MUXER_OUTPUT_HEIF,一般经常用的也就是 MUXER_OUTPUT_MPEG_4,录制 .mp4 格式的文件。但是在录制时,有一个情况,原创 2020-07-09 17:58:46 · 3346 阅读 · 2 评论 -
Bugly热更新 so 文件
Bugly 热更新 so 文件Bugly 热更新是使用 tinker 实现的,热更新 Java 文件,资源布局文件非常简单,但是更新 so 文件就会有一些问题了。 /** * 如果想更新so,可以将System.loadLibrary替换成Beta.loadLibrary */ static { Beta.loadLibrary("native-lib"); }官方 Demo 中这样描述,更新 so 文件的方法,这个 so 文件是 cpp 文件生成原创 2020-07-01 17:57:23 · 430 阅读 · 0 评论 -
Android Studio 类文件乱码变成 xml 格式文件
Android Studio 类文件乱码变成 xml 格式文件事情发生的很莫名其妙,Android Studio 好好的,突然一些 java 类文件变成了 xml 格式的乱码,然而用 notepad++ 打开错误的 java 类文件发现是没有问题的,说明是 Android Studio 出了问题,搜索了一番,终于找到了解决答案,把 Android Studio 的配置初始化就行了,那么怎么初始化...原创 2019-07-08 19:44:50 · 3334 阅读 · 4 评论 -
ListView、GridView 获取选中的 item 的 bean 对象
ListView、GridView 获取选中的 item 的 bean 对象我们如何可以直接使用 ListView 和 GridView 对象获取选中的 item 对象呢。GridView 给我们提供了 mGridView.getCheckedItemPosition(); 方法,该方法可以从名字中看出方法功能是获取选中 item 的 position,但是往往会返回 -1,这是为什么呢,我们...原创 2018-11-13 13:33:39 · 648 阅读 · 0 评论 -
使用 RecyclerView 实现通讯录效果
使用 RecyclerView 实现通讯录效果先附上效果图:如图效果所示,实现某个字母下面展示以该字母开头的产品。看界面效果,基本可以肯定,主 View 应该是 RecyclerView 或者 ListView,需要显示出两种布局,字母的布局,产品的布局,我是使用 RecyclerView 实现的,简单记录一下我的思路。其中一种看起来可以实现的方法是在 Adapter 中设置两个 Vie...原创 2018-10-16 17:48:15 · 3339 阅读 · 0 评论 -
自定义 Dialog 显示问题,只因为去掉了一层布局,宽度就变得很窄了
在项目中,使用自定义 Dialog,遇到了一个比较怪异的现象,我没有百度到原因。项目中使用自定义 Dialog,在 xml 布局文件中定义了一个 layout。<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas....原创 2018-08-20 16:04:26 · 1762 阅读 · 2 评论 -
ListView 加载动态改变的 item
ListView 加载不同的 item正常情况下,ListView 是可以加载不同的 item,因为 ListView 的 BaseAdapter 中有 getItemType 方法,可以重写该方法,在 getView 中,通过不同的 itemType 加载不同的 ViewHolder。然而,我接受到了一个需求,虽然我不认为该需求是一个合理的需求,但是还是要去实现。需求大致如下,根据后...原创 2018-08-02 10:02:26 · 825 阅读 · 0 评论 -
我理解的 Android MVP 模式
之前一直使用 MVC 模式开发 Android 应用,而 MVP 模式也出现了好久,可能之前还是太菜了吧,看网上博客,Google 官方的例子,总是不懂,不过最近又开始看,多少有了些理解,写出来与大家分享一下。一开始的 MVC 模式,Activity 其实承担了 V 和 C 的职责。负责 View 相关的绘制以及加载功能。我们也会在 Activity 中直接做一些数据加载相关的工作,最简单的,...原创 2018-08-09 17:08:22 · 244 阅读 · 0 评论 -
Dialog 或者 DialogFragment 使用 RecycleView 时,RecycleView 不显示数据
需求环境: 点击按钮,弹出 Dialog,然后 Dialog 的布局时一个RecycleView,列表显示一些 item 信息。 问题状况: List 数据源确实有了信息改变,但是 Adapter 确没有执行 onCreateViewHolder(); onBindViewHolder(); 回调方法,数据改变后,界面没有显示。 问题解决: 把代码在 Activity 中实现,发现是有数据原创 2018-04-13 12:36:46 · 5347 阅读 · 1 评论 -
HorizontalScrollView将子View布局居中
HorizontalScrollView 只能拥有一个子View,所以,使用HorizontalScrollView 会配合布局使用,通常使用LinearLayout,然后LinearLayout内置多个子View。我在使用过程中,如果使用默认情况,会出现添加的布局从左到右挨个排列。 如果设置LinearLayout的 android:layout_gravity=”center_hori...原创 2018-03-16 11:30:47 · 3158 阅读 · 0 评论 -
AutoCompleteTextView使用ArrayAdapter
AutoCompleteTextView使用ArrayAdapter,数据源改变后,调用mArrayAdapter.notifyDataSetChanged无反应AutoCompleteTextView 使用ArrayAdapter时,当修改了数据源mList时,调用mArrayAdapter.notifyDataSetChanged()时,会发现界面并没有更新。而mList确实发生了变化...原创 2018-03-02 10:42:41 · 671 阅读 · 0 评论