Android开发
形上为道
为实现梦想而奋斗的非典型程序员
展开
-
Android中的图像矩阵归一化
Matrix应用到OpenGL中时需要先进行归一化处理,记录一下归一化的推导过程及原创 2022-08-29 10:18:16 · 1067 阅读 · 0 评论 -
Android长按实现连续点击
非入侵式长按实现连续点击原创 2022-06-15 15:34:55 · 1411 阅读 · 0 评论 -
PopupWindow中的ListView调用notifyDataSetChanged()无效问题及解决方案
ListView的数据改变后,需要调用其设置的adapter.notifyDataSetChanged()这样才能更新数据。但是,如果是用PopupWindow显示ListView,可能会有数据刷新无效问题。比如PopupWindow在dismiss之后,要更新数据并显示PopupWindow,这种情况下往往会更新失败。 if (!popWindow.isShowing()){ adapter.setData(displays); adap原创 2022-04-19 15:27:00 · 537 阅读 · 0 评论 -
Android 获取其它app的Activity名称及action
参考网上资料,目前发现两种方式:1.adb命令1)电脑连上手机,终端输入:adb shell logcat | grep cmp= ,然后终端就进入了堵塞监听状态。2)操作手机打开APP,终端就会监听显示出当前打开的APP包名和Activity名称。比如: START u0 {flg=0x10000000 cmp=com.miui.securitycenter/com.miui.permcenter.autostart.AutoStartManagementActivity} from ui原创 2021-08-31 11:01:19 · 2011 阅读 · 0 评论 -
YUV与RGB相互转换
Android相机yuv输出格式是420sp,MediaCodec硬编码通常也是yuv420sp,因此yuv420sp与rgb之间的转换较为常用,这里记录一下:转换公式按照yuv2rgb: rgb2yvv:rgb转yuv420sp(YYYYUVUV),每逢偶数行及偶数列取一次UV数据:/** * @param yuv420sp target to save yuv data, the length should be at least width*height*1....原创 2021-08-09 10:18:01 · 1990 阅读 · 1 评论 -
android NDK crash定位(精简版)
NDK的crash与java不同,无法看到报错的具体位置,极端情况下甚至只有一句log。如下面这种Fatal signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x76c229b8e8 in tid 23230 (ImageTester:), pid 23186在网上查了不少文章,有的写的很多,但却不怎么实用,有的则是给出的路径错误,这里简单记载下可用的命令。除了使用打log那种笨方法,ndk的crash需要用到ndk-track,位原创 2021-04-06 19:30:56 · 492 阅读 · 0 评论 -
ImageReader中YUV_420_888格式图像转nv21
参考了https://blog.csdn.net/lbknxy/article/details/54633008这篇博客,先感谢一下。Camera2使用ImageReader进行数据回调,但使用YUV_420_888格式,回调后yuv分别存储成plane数组中的3个,如果要形成nv21或i420数据,需要重新组合起来。在网上找的相关代码都很复杂,但实际上没有必要。plane数组第0项是Y通道,这个没争议;但第1项并非只存储U通道,而是UV通道交替存储,这也是planes[1].getPixe.原创 2020-12-18 09:06:00 · 5116 阅读 · 0 评论 -
Java图像格式判断
原理:从inputStream中读取前10个byte,然后转换为char// GIF if (b0 == (byte) 'G' && b1 == (byte) 'I' && b2 == (byte) 'F') type = "GIF"; // PNG else if (b1 == (byte) 'P' && b2 == (byte) 'N' && b3 == (byte) 'G')转载 2018-02-08 14:47:17 · 1737 阅读 · 1 评论 -
Android虚拟键盘的高度计算
系统本身没有提供获取虚拟键盘的方法,在网上查了一些资料,发现还存在一点问题,故此把改好的代码记录下来,以备后用。需要用OnGlobalLayoutListener来监听app窗口的变化final View decorView = getActivity().getWindow().getDecorView(); //虚拟按键高度 final int vmKe原创 2017-12-14 11:18:53 · 759 阅读 · 0 评论 -
android键盘及虚拟键适配
聊天界面,需要实现切换软键盘及输入框下面的其它聊天工具时,输入框的位置不变;根据键盘的变化及是否是用户通过键盘上的按钮来隐藏键盘,来显示和隐藏聊天工具。Android系统未提供判断软键盘是否弹出及虚拟按键是否显示的方法,在网上查到的资料,只能通过OnGlobalLayoutListener来间接判断,开发过程中遇到一堆坑。原创 2017-12-21 11:11:02 · 1469 阅读 · 0 评论 -
用SharedPreferences存储集合
思路:参考网上资料,存储json字符串,使用时进行解析即可,为避免重复,建议用set集合例:/** * 获得用户登录过的所有账户 * @return 用户名的set集合 */public static HashSet getAccountList() { SharedPreferences sp=getSharedPreferences(); HashS原创 2017-11-21 17:04:40 · 650 阅读 · 0 评论 -
Android自定义可缩放的ImageView,长按可弹出菜单
参考了一些网上案例,按照自己的逻辑写的,自认为逻辑还算清晰,代码量也不大。使用方式和ImageView相似,但其缩放标签失效 public class ZoomImageView extends android.support.v7.widget.AppCompatImageView implements Runnable { private boolean isLoadI...原创 2017-11-17 17:40:02 · 1810 阅读 · 1 评论