
Android
文章平均质量分 50
qq_1235678
这个作者很懒,什么都没留下…
展开
-
Android中如何巧妙停止线程的方法
好长时间没更新博客了,最近听取别人的博客写作经验,将开发中遇到的问题进行分享也是原创。这是去年的网约车项目中遇到的。 在处理多线程任务时,比如倒计时接单(通过子线程实现倒计时),新来订单15s后自动消失。而业务需求中又要允许用户在倒计时未结束时手动划掉消失,则此时需要停止倒计时线程。或者可能有时有多单依次叠加,此时最上面的一单消失时,也需要先停止上一单倒计时再自动开启下一单的倒计时。 如果是new Thread方式的interrupt()方法来停止线程,你打印时输出会发现倒计时中累加的变量并未停止累加。转载 2021-08-25 10:11:21 · 1331 阅读 · 0 评论 -
Android使用NDK OpenGL ES3.0绘制一个三角形
Android使用NDK OpenGL ES3.0绘制一个三角形 网上已经有很多OpenCV的教程,不过大都是基于Java层调用openGL接口,若使用Java层openGL接口绘制三角形,还是比较简单的,但要是使用NDK C++ 实现,还是有点复杂。 本文将使用Android NDK开发,利用C++的 OpenGL ES3.0绘制一个三角形。绘制三角形的C/C++源码大部分是参考:《OPENGL ES 3.0编程指南&nb转载 2021-08-20 12:47:27 · 658 阅读 · 0 评论 -
解析json字符串
JSON数据就是一段字符串而已,只不过有不同意义的分隔符将其分割开来而已,里面有[ ] ,{ }等符号,其中1 [] 中括号代表的是一个数组;2 {} 大括号代表的是一个对象3 双引号 “” 表示的是属性值4 冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值,这个值可以是基本数据类型,也可以是引用数据类型。那么 如何从长长的Json数据中快速得出自己需要的值呢?用fastjson解析json字符串或者gson...原创 2021-07-06 17:28:23 · 843 阅读 · 0 评论 -
android studio library生成jar包和aar的方法总结
写了个工具包。然后想生成成jar包或者arr的资源格式,网上找了方法,这边算是总结下 首先是生成jar包 首先在library的工程目录下选中它的build.gradle文件并打开 在文件的最后加入代码 //task to delete the old jartask deleteOldJar(type: Delete) { delete 'release/AndroidPlugin.jar'} //task to export contents as jartask ex转载 2021-07-06 09:56:40 · 466 阅读 · 0 评论 -
Android studio如何对library打成jar包
1、今天在用andBase的时候有一个andbase的library,我看着就不是很爽,就寻思打成jar包,但是网上下的jar包都是残缺的,有一些方法没有,只能自己打了。 2、首先看一下目录结构 3、其中最主要的一段话是: task makeJar(type: org.gradle.api.tasks.Copy)//commentUtil.jar,生成的包名delete 'build/libs/commentUtil.jar'from('build/intermediates/bundle转载 2021-07-06 09:48:41 · 310 阅读 · 0 评论 -
Cannot fit requested classes in a single dex file (# methods: 134582 > 65536 ; # fields: 101112 > 65
问题 Cannot fit requested classes in a single dex file (# methods: 66370 > 65536) 原因分析 主要原因是你的项目貌似有点大,已经超过65k个方法。一个dex已经装不下了,需要个多个dex,也就是multidex ,因为Android系统定义总方法数是一个short int,short int 最大值为65536。 解决方案 在app module中的build.gradle中添加依赖 implementation转载 2021-03-17 09:34:59 · 343 阅读 · 0 评论 -
Android设置SurfaceView任意大小、任意位置、保持预览宽高比与屏显一致
1. 代码public void init() { // FrameLayout ViewGroup.LayoutParams framelayout_params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); mFrameLa转载 2020-08-24 09:43:32 · 5761 阅读 · 0 评论 -
YUV420图像旋转
YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV转载 2020-08-14 14:09:33 · 535 阅读 · 0 评论 -
Android YUV旋转花屏解决、Camera获取图像
一个自拍app,如何获取我们的surface view的截屏?在Camera的onPreviewFrame回调中(继承的PreviewCallback接口)。我们可以获取到data数组,里面存放着就是实时的图片data数组转文件为null,且转bitmap也为null怎么办?data数组里确实存放的是图片,但是格式不对,是YUV420格式。需要进行一个转换。所以采用open gl包下的YuvImage这个类可以解决转化的问题,他有一个compressToJpeg方法。转换成jpg格式,存到手机文件中转载 2020-08-14 14:03:59 · 957 阅读 · 0 评论 -
移动端摄像头yuv旋转、裁剪、镜像、格式转换算法的实现及其原因
存在问题移动端录像在yuv数据上存在如下问题:无论android还是ios都不能直接从摄像头取出颜色空间为i420的数据,所以在编码前需要进行格式转换。而且由于所取图像得分辨率必须是摄像头所提供分辨率中得一组,所以有可能需要裁剪。另外由于(1)想让无论用户哪个方向拿手机所录的视频内容永远“头朝上”( 2)摄像头默认返回图像为横屏图像(宽大于长)所以需要旋转。前置摄像头需要镜像。算法实现1.格式转换nv21转成i420。可以通过摄像头设置将所采集数据设置为YUVNV21格式。void转载 2020-08-14 13:45:59 · 584 阅读 · 0 评论 -
Android Studio插件整理
现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行)。使用好Android Studio插件能大量的减少我们的工作量。1.GsonFormat快速将json字符串转换成一个Java Bean,免去我们根据json字符串手写对应Java Bean的过程。使用方法:快捷键Alt+S也可以使用Alt+Insert选择GsonFormat2.Android ButterKnife Zelezny配合ButterKnife.转载 2020-07-22 09:45:47 · 735 阅读 · 0 评论 -
Android 第三方图表类 MPChart 的使用
先看看条形图的的效果还不错是吧,实现这样的效果很合适呢!还有折线图、饼图很多效果效果不错对吧~下面我们就先来看看条形图的实现方法吧!第一步:引入第三方包 MPChart如果你碰巧看过我之前写的Recycleview的博客这就简单多了,如上图所示就可以添加mpandroidchart到项目中了!果然Android studio很方便呢是吧!下面就是在布局中使用控件了!<com.github.mikephil.charting.charts.LineChart and.转载 2020-08-22 11:45:34 · 753 阅读 · 0 评论 -
MPchart 使用详解及详细属性----pieChart(饼状图)
项目源代码:https://github.com/libin7278/MpChart第一步导入library详细见MPchart使用详解及详细属性(一)http://blog.youkuaiyun.com/github_33304260/article/details/51272078第二步pieChart源代码import android.app.Activity;import android.graphics.Color;import android.graphics.Typeface;import转载 2020-08-22 11:35:59 · 1480 阅读 · 0 评论 -
MPChart画图:折线图、饼状图、柱状图
折线图 LineChart先看图:代码部分:private void initLineChart(){ Description description = new Description(); description.setText("give a mark"); description.setTextSize(16); lineChart.setDescription(description); String[] xData = {"1", "2", "3"转载 2020-08-22 11:26:14 · 797 阅读 · 0 评论 -
android 开机自启动 apk
前言:有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service。怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don't call me, I'll call you back!”总结Android框架,真是说到点子上了。理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解。使用场景:手机开机后,自动运行程序。{只是最近本人在做万达大歌星点餐系统,需要用到系统启动直接启动App避免服务员玩别的app才研究的,以下分享是本人参考网络转载 2020-08-18 17:47:04 · 854 阅读 · 0 评论 -
Android Studio 生成正式签名apk(app-release.apk)的两种方式
方式一:使用Android Studio生成1.点击Build->Generate,首次点击可能会提示输入操作系统密码2.弹出如下对话框,因为我们还没有生成过keystore ,所以点击Create new,新建keystore3.填写相关内容Key store path 是 keystore的存放路径 Alias 是别名,填写APP名称即可,别的名称你记得住的也行validity 是有效期限。 两种密码结合上一幅图看填写完成后点击ok (记得备份,因为以后这个apk的新版本都是用这转载 2020-08-14 16:35:37 · 2464 阅读 · 0 评论 -
AndroidStudio之如何发布自己的编写好的APP
Android如何发布自己的编写好的APP,提供给他人下载?我们辛辛苦苦编写的app,不就是为了方便他人能够使用吗,要是编写的APP不能让他人下载,那么安卓开发就失去了灵魂,看到别人使用自己编写的APP也能够让提升自己的自豪感,今天,学长就带你们发布你们自己所写的app!(一)、APP的发布方式APK是Android Package的缩写,即Android安装包(apk)。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装。APK包分debug版和release包,通常所转载 2020-08-14 15:31:37 · 1179 阅读 · 0 评论 -
Android Studio4.0 Build Output 栏内汉字出现乱码的解决方案
先上个图就是图中红框内显示的毛病,Build Output栏中的汉字出现了乱码,其它地方都没有乱码。此方案仅适用于图片中出现的乱码。解决方案如下:1、桌面右键点击Android Studio,属性->【打开文件位置(F)】2、找到studio64.exe.vmoptions文件(32位的系统则为studio.exe.vmoptions),用Notepad++打开3、在末行添加-Dfile.encoding=UTF-84、重启Android Studio,构建项目,这时乱码消失,显示正常原创 2020-07-20 16:56:29 · 702 阅读 · 1 评论 -
Android应用全屏显示
在Android 开发中全屏显示的方式有三种,分别介绍如下:1、在Activity中进行设置,代码如下:getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);此行代码必须写在Activity指定布局文件之前,否则会报错误。2、在android项目的主配置文件的application的属性中设置,设置方式一:android:theme="原创 2020-06-09 09:21:02 · 2946 阅读 · 1 评论 -
Android获取屏幕高度、标题高度、状态栏高度
我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸下面的代码即可获取屏幕的尺寸。在一个Activity的onCreate方法中,写入如下代码:DisplayMetrics metric = new DisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(metric);int width = metric.widthPixels; /转载 2020-08-22 10:51:12 · 531 阅读 · 0 评论 -
Android开发中dp、dpi、px的区别
基本概念- dp:安卓中的相对大小- dpi:(dot per inch)每英寸像素多少- px:像素点二、详细说明1、px和dpi- px:平常所说的1920×1080只是像素数量,也就是1920px×1080px,代表手机高度上有1920个像素点,宽度上有1080个像素点。- dpi:要想判别手机屏幕的显示好坏,还要考虑屏幕的宽高(英寸),也就是用dpi即每英寸多少像素来评价屏幕的显示效果。(不然假如手机分辨率是1920×1080,但是屏幕是几十寸的,那显示效果将不会很好,甚至你有可能转载 2020-08-24 09:13:32 · 1068 阅读 · 0 评论