新潮技术研究社
这个作者很懒,什么都没留下…
展开
-
解决Android TextView文本内容自动换行问题
我的情况是放在GridLayout中,有的人可能是TableLayout,查了查网友的答案,有的设置TextView inputType多行multiline,省略号ellipsesize。后来想着还是使用换行符吧,检测放入的字符串的长度,然后加个换行符进去就行。本来想着用TextView来显示某个版本号,结果版本号异常的长,原创 2023-05-09 18:21:23 · 3150 阅读 · 0 评论 -
解决Android主题样式Theme或Styles不匹配导致app无法启动的问题总结
不过,后面我尝试使用了NoActionBar后缀的主题时,另外添加了两行设置,话说这里很奇怪,windowNoTitle不能设置为true,底下的windowActionBar需要设置为true(这里可以理解,我代码中使用了getActionBar()),但是windowNoTitle却不能设置为true,可是在app启动之后,title标题栏却已经去掉了。当然了,也可以自定义,如下,你可以根据需要设置item项目,也可以从系统已有的Theme里面copy一些定义过来,然后就可以组合成自己的了。原创 2023-02-09 15:31:24 · 2053 阅读 · 0 评论 -
Android去掉应用app标题栏以及ActionBar
注意,这里这个Theme是可以改变的,只要Android里面有,或者你完全自己自定义也行,由此,很多公司在做APP的时候,其实更喜欢用网页嵌入webview的方式,毕竟直接用网页的样式更加漂亮。将你的主题样式改为NoActionBar的选项,注意查看你是否有这个样式,可以直接点parent后的样式名,到样式定义文件中查看,如果没有,也可以自己在style.xml,或者themes.xml中对应的样式下,自己跟着写一个也行。去掉这个Bar,最主要的问题在于Style样式,当然了,也可以使用代码去掉。原创 2023-02-08 18:31:05 · 593 阅读 · 0 评论 -
Android使用handler线程实现TextView循环显示日期时间
一开始使用的TimerTask和Timer定时器来显示当前的时间,但问题是,每一次我设置的时间如果是过去的某个日期时间,这个TimerTask就会无故地停了下来,导致我在TextView上显示的时间也停了。虽然控件TextClock可以显示当前时间,并且不受我修改时间后的影响,仍能保持每秒显示时间。但是它没有日期,所以我还是得自己想办法解决日期和时间的同时显示问题。最近想要实现一个显示当前日期时间的功能,而且还得是设置Android日期时间并重启设备之后,能够保存时间。原创 2023-02-07 18:41:17 · 434 阅读 · 0 评论 -
Android进度条功能模块实现
以上代码可以直接嵌入类中使用,中间的进度计算可以自行修改。原创 2023-02-06 12:33:40 · 199 阅读 · 0 评论 -
Android并发线程Handler后台线程使用总结
当程序中存在网络,文件读写,数据库操作,以及复杂的计算的时候,为了防止界面主线程卡顿,就会用到并发线程。Android界面主线程接收所有的输入事件,放入一个队列中,并使用Looper类对象去处理这个队列。Android中处理线程的三种方式:Thread,java.util.concurrent(通过ThreadPools和Executor类实现)Android本身提供了android.os.Handler类和AsyncTasks类来处理线程,其他还有callbacks回调处理。原创 2023-02-06 11:42:00 · 607 阅读 · 0 评论 -
Android使用Process执行多命令设置系统日期时间
之前文章中使用DatePicker和TimerPicker还有个问题,就是getMonth和getHour()等函数后,获取的值比控件上显示的值小了1,而且不是以01,02的形式得到的值,得到的值为1,2,但是,上述方式也是无效的,问题在于busybox hwclock命令执行是成功的,但是效果确实不行的。2.busybox关闭rtc也不行,但是另外一条命令却是可以的,当然了,或许你的设备和我的不一样,所以我这些都记下来了,方便你去尝试。我同时执行了这两条命令,你也可以分开来执行,效果是一样的。原创 2023-02-01 16:48:45 · 568 阅读 · 0 评论 -
Android使用DatePicker和TimerPicker设置日历日期及时间
这里我使用的Android嵌入式设备,版本5.1,sdk22,其他高版本的类似,只不过涉及到手机没有root命令无法执行的问题,以后再研究吧。目前很多手机都是Android10,11,12的版本。这个大家可以参考sdk32的说明文档。DatePicker和TimerPicker控件使用spinner模式,因为这个可以比较方便操作,当然了,calendar模式或者clock模式也行,自行选择即可。主要是执行date -s命令。原创 2023-02-01 11:40:11 · 544 阅读 · 0 评论 -
android获取设备内存大小及精度问题
我这里用的是在fragment中获取,如果你是Activity的话,稍微改动一下就行。2.注意最后结果的double精度问题。1.类MemoryInfo的使用。原创 2023-01-30 15:34:05 · 449 阅读 · 0 评论 -
AndroidStudio本地化中文随系统语言显示文字
只需要打开一下res\values\strings.xml文件,右上角就会出现一个Open Editor的蓝色字眼,点一下就可以打开Android的翻译界面。如果你之前的字符串太多,一时间忙不过来,那么可以直接复制原先的strings里面的内容到新的zh-rCN\strings.xml文件中,以后再继续更新。具体操作就是,点击下图中的“小地球”,然后添加Chinese,接着点问号旁边的刷新按钮,所有当前strings里的字符串就会显示在下方表格中了。感觉这个操作比起其他IDE要方便很多。原创 2023-01-12 18:08:04 · 743 阅读 · 0 评论 -
Android给ListView加上通用Header/Footer列表头并修改其中内容
譬如我们最常用到的Android里的ListView,spinner之类的控件,我要给它加个Header头,我一个项目里有很多列表,要是每一个列表都要重新新建一个xml作为HeaderView,然后listview调用addHeaderView去使用。况且一个表头或许我仅仅只是修改几个文字,新建一两个xml的界面无所谓,那要有10个8个的话,怎么搞?这里涉及到一个比较常遇到的问题,那就是除了include某个xml的零碎界面,我们还可以通过inflate视图View的形式来重复利用一些小部件。原创 2023-01-06 16:30:11 · 692 阅读 · 0 评论 -
AndroidStudio启动app时闪退问题解决过程
这个闪退问题是由于我修改以往的一个项目代码,原本是使用了自定义的Application,加上自定义ListActivity来启动界面,而我需要加入一个APP启动界面,所以需要换掉它这个开始的流程,改为正常的MainActivity来启动,之后再切换界面。那么,还有一类问题,就是我这里出现的,启动成功,没有任何错误,查看logcat,build,Run都没问题,但是APP启动后,闪退了。于是我重新创建了一个新的项目,随意取名,仅仅只是一个Empty Activity的项目,主要是用来验证错误。原创 2023-01-05 11:48:36 · 10579 阅读 · 0 评论 -
Win10下如何强行中断AndroidStudio下载Sync同步gradle等编译包?
鉴于国内网络的问题,AndroidStudio在每一次更新或者重新打开之后,都要去下载gradle等更新后的文件,造成一个卡顿得不行的漫长过程,尤其是我这网速还不咋地的情况下,下载一个gradle7.5,150多兆,都要卡个半个小时甚至更长。直接在AndroidStudio里面的Terminal终端下即可,我们要终止的不是AndroidStudio,而是java.exe进程。在Win10下中断AndroidStudio,和Linux下用killall不一样,Windows下用的命令是TaskKill。原创 2022-12-30 11:33:37 · 805 阅读 · 0 评论 -
Qt5.15 Android使用sqlite3数据库案例
最近想着直接在Qt Android里面使用sqlite数据库,但因为Android手机权限问题,碰到了一个最大的问题就是无法连接数据库,操作数据库。因为这样子虽然编译出来的build目录下有了assets目录,并且其中有test.db数据存在,但是这样操作仅仅能够连接数据库,并无法操作,增删查改,都不能做。正确的做法是,除了上述pro文件配置之外,还需要使用QStandardPaths将需要读写的文件拷贝到手机中的应用程序可读写的目录下。其实上面的assets也可以换成qrc,关键的步骤在于下面拷贝操作。原创 2022-10-20 10:52:33 · 1005 阅读 · 0 评论 -
Android studio2021工程将动态库so编译进apk
在安卓工程里面引入so动态库是经常会出现的工作,我的AndroidStudio版本是20210101p3,最新的还没升级呢,大家可以升到最新的,Android开发就是这样,不得不跟着官方升级,不然它老弹窗,虽说你可以设置,但是之后下载编译需要的依赖包慢慢地就会出现问题,所以还是跟着走吧。 将动态库so编译进Apk的做法其实很简单,这里说的是没有源码的方式哈,我们创建工程的时候使用ndk那种当然更好,可以啥都不用管,直接写jni代码就可以了,不需要做这些事情的。在左侧栏Project视图下,新建一个jniLi原创 2022-06-29 18:50:14 · 1047 阅读 · 0 评论 -
Android执行删除system/bin/xxx目录下文件命令
Android里面执行命令的方式很多,Runtime.getRuntime().exec(String command);Runtime.getRuntime().exec(String [] cmdArray);Runtime.getRuntime().exec(String command, String [] envp);Runtime.getRuntime().exec(String [] cmdArray, String [] envp);Runtime.getRuntime(原创 2022-05-16 11:33:14 · 964 阅读 · 0 评论 -
Android10 FFmpeg开发案例之实现一个简易视频编辑器
Android里面开发视频播放器的例子很多,但FFmpeg无疑是最为强大而且最多人使用的音视频编解码库,所以,可以这么说,FFmpeg你必须学会使用。下面大部分是收集的,整合一下,感觉很重要,所以拿过来了,至于更加细致的FFmpeg用法,你可以看FFmpeg手册,help命令,或者网上搜一搜,基本上你看到的网上各种音视频流媒体的处理,都离不开FFmpeg:FFmpeg库关键概述:libavutil是一个实用程序库,用于帮助进行多种媒体编程。它包含可移植的字符串函数、任意数生成器、额外的算术能力、数据原创 2022-05-06 19:17:15 · 1691 阅读 · 0 评论 -
Java Swing桌面程序本地化工具使用案例,让你轻松中文化你的界面
Java Swing一直以来都是Java中的桌面框架,就如同C++ Qt一样,虽然说现在有了JavaFx,不过,那都还不成熟,AWT比起Swing来说又差了许多,所以,我们还是选择了Swing做界面。要做桌面程序,有几个功能大家一定要熟悉,这些功能太平常太通用了,工作项目中绝对绕不开的,所以接下来,我们一个一个来实现,容我卖个关子,等我们都实现了之后,再来总结吧,或者你们可以留言说说,最需要实现的是什么功能。首先是本地化,也叫国际化,国内的话叫汉化也行。在Intellj IDE中,我的环境主要还原创 2022-04-26 19:19:25 · 2834 阅读 · 0 评论 -
Qt5/6 Android版蓝牙扫描程序编译运行流程及触摸事件处理
Qt5/6 中的btscanner手机蓝牙扫描程序,这个程序是Windows,Android和Linux都可以运行的。我们知道Qt是跨平台的C++框架,一份代码能够在很多个系统平台上编译运行,但,这是有前提的,那就是不涉及该系统下的驱动级别API,简单地说就是,如果你的程序是完全凭借Qt本身类接口就能实现的功能,那么,你的程序就是跨平台的;而如果你的程序需要借助该系统中的某些驱动级,或者其他某些更加方便的功能库去实现的话,那么它将不能跨平台,因为,这些个功能库只有该系统平台下有,其他系统下是没有的;典.原创 2022-04-24 22:51:44 · 1985 阅读 · 0 评论 -
Android10下wifi连接的两种方式:点对点连接和外网连接
因为Android下的API总是在变,权限越来越少。导致出现的问题层出不穷,所以我们只好按照官方手册去开发了。在看了手册后,我们知道连接网络有两种:1.点对点连接,意思就是我们直接去连接自己指定的网络,譬如测试环境,局域网(不能上外网的环境)2.互联网连接,意思就是我们处于一个开放的环境下,譬如平时的手机(可以连接外网的环境)首先,点对点连接,如下代码所示:final NetworkSpecifier specifier = new WifiNetworkSpecifier.Bui原创 2022-03-15 19:23:40 · 6429 阅读 · 0 评论 -
Android开发案例源码解析之使用sqlite数据库记录并读取GPS信息
整体界面如下(运行环境为AndroidStudio2020最新即可):总体上就是一些步骤类的基本操作,定时显示,手动显示GPS位置信息。定义GPS数据结构:public class gpsdata{ public int InfoType; public int Latitude; public int Longitude; public double High; public double Direct; public double Speed; public String Gp原创 2021-12-07 17:09:17 · 2660 阅读 · 0 评论 -
Android开发之使用listview点击切换子界面的用法详解
在这个案例中,我们可以看到一个listview很经典的用法,点击其中的item项目,就可以出现我们想要的界面,方便管理,逻辑清晰。主要就是把各个界面用intent和listview串起来使用。具体的直接看代码吧。ListView mListView = null; String[] mStrDemos = { "MapViewDemo", "ItemizedOverlay", "PoiSearchDemo", "RoutePlanDemo", "LocationOv原创 2021-12-07 14:20:28 · 2225 阅读 · 0 评论 -
Androidstudio2020中添加外部jar包外部库
1.首先我们复制某jar包到libs目录2.右键点击xxx.jar,然后add as library,然后再gradle sync一下,就可以看到在你的build.gradle文件中自动出现了加载的包语句,所以如果你要加入的包很多的话,你完全可以手动写进去,然后sync一下即可。...原创 2021-12-07 11:03:25 · 438 阅读 · 0 评论 -
Android开发之获取GPS位置案例源码详解
代码比较简单,使用LocationManager实例即可。主要是调用mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);去注册监听器。package com.funny.gpstracker;import android.Manifest;import android.app.Activity;import android.content.Context;import and原创 2021-12-06 17:45:13 · 1252 阅读 · 0 评论 -
Android开发之GPS测试完整案例源码详解之实时检测GPS的状态
获取Android系统Location位置服务实例:/** * Get location manager system service * * @return LocationManager */ public LocationManager GetLocationManager() { return (LocationManager) getSystemService(Context.LOCATION_SERVICE); }监.原创 2021-12-06 17:03:09 · 590 阅读 · 0 评论 -
Android10自行车导航App-bikeroute源码解析之request调用外部httprestApi的实用函数
Android http api请求实用函数原创 2021-12-06 10:59:42 · 1332 阅读 · 0 评论 -
Android include控件切换界面使用案例源码详解
因为手机屏幕的尺寸缘故,我们很多时候是不能再一个界面上堆太多东西的,尤其是列表,往往一个列表需要显示的项目很多,如果和其他的控件堆在同一个界面中就会显得非常拥挤。所以我们很多时候,就会将列表单独放在一个界面中。譬如下面的蓝牙搜索界面:上面的表格和下面的列表,在同一个界面中就会很拥挤了。所以我们需要拆分两部分:界面源码如下:bluetooth_info_table.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xm原创 2021-11-10 17:22:42 · 2033 阅读 · 0 评论 -
Android开发之新闻阅读器完整案例源码01-使用RadioGroup制作底部导航栏
Android app经常出现的一个组件就是底部的导航栏,实现方式有很多:1.使用button加framlayout布局,简单直接2.使用tabactivity,tab标签页,用起来也不错3.使用其他标签页控件等等。这里我们学习一下tab标签页加radiogroup的方式,LocalActivityManager已经丢弃,不过代码还是可以用的,有兴趣的同学可以自己尝试使用fragmentmanager去改一改。首先获取tabhost界面句柄,然后创建几个Intent作为tabhost的标签页。代原创 2021-11-10 11:35:29 · 2112 阅读 · 0 评论 -
Android Can循环发送数据线程代码示例
定义Can发送数据线程类:private class CanCycle0SendThred extends Thread { public Handler handler0 = new Handler(); public Runnable runnable = null; @Override public void run() { runnable = new Runnable() {原创 2021-11-08 17:39:05 · 1790 阅读 · 0 评论 -
Android自定义Spinner Item样式修改spinner 或者listview item颜色字体等属性
在res/layout中新建一个xml文件,然后将下面语句直接覆盖进去即可:具体意思比较简单,属性大家可以自己看得懂,自定义过程中也可以自己添加别的控件,看你自己发挥了。这个不仅可以应用在spinner,还可以是listview。spinner.xml文件内容:<?xml version="1.0" encoding="utf-8"?><TextView xmlns:android="http://schemas.android.com/apk/res/android原创 2021-11-08 17:35:45 · 1353 阅读 · 0 评论 -
解决cmake编译过程中出现opengl找不到OpenCL_INCLUDE_DIR-NOTFOUND
cmake找不到opencl时,我们需要apt安装opengl开发包,不过不是libopencl啥的,而是:sudo apt updatesudo apt install ocl-icd-opencl-dev原创 2021-10-25 15:22:41 · 3714 阅读 · 0 评论 -
Ubuntu18中同时存在python2.7和python3.6,设置默认python版本
1.查看python版本:python --version2.设置 update-alternatives --install /usr/bin/python python /usr/bin/python3 1(优先级)原创 2021-10-25 15:07:59 · 926 阅读 · 0 评论 -
解决String index out of range: -1的问题
由于升级到AndroidStudio2020.3之后,很多界面文件居然出现了打不开的情况;提示错误:String index out of range: -1xception raised during rendering: String index out of range: -1具体原因都是Android内部的渲染问题,我也看不懂。不过,只要你将XML中各个控件的android:autofillHints=""去掉即可了。...原创 2021-10-25 09:36:21 · 8604 阅读 · 2 评论 -
彻底干掉霸占我任务栏的2345好压的垃圾广告搜索以及天气预告工具栏
近段时间以来,2345好压突然在以前的2345news的基础上又搞出了个搜索工具栏和天气工具栏,以前弹出新闻的时候,鉴于它免费,我也就算了,虽然qq各种弹窗新闻,搜狗浏览器各种弹窗新闻,其他各种软件也纷纷效仿搞的弹窗很是让人烦,不知道为啥国家不管,自个儿“品”吧。像那些个弹窗,我们直接使用电脑管家屏蔽就可以了。但是2345也是“穷”到一定地步了,想破脑袋终于想出了一个招,让广告植入到任务栏,嗯,他们做的很成功,成功地激怒了我。于是,我打开了注册表编辑器,禁用了它。win图标+R快捷键调出“运行”窗口原创 2021-10-12 15:54:31 · 1079 阅读 · 1 评论 -
解决The emulator process for AVD xxxx has terminated.问题
从网友的解决办法来看:1.释放AVD所在盘(一般你没有挪动过,就在Androidstudio的安装目录下,或者C盘)空间2.上面出现的概率比较小,换一个system image,譬如原来是Android9 x86 image的换成一个低版本的,原来是x86_64的换成x86的我是重新安装了AndroidStudio最新版2020.3的,然后换成Android10 x86_64,结果一直启动不了,提示下面的错误。换回Android9的x86版本立马就正常启动了。3,上面方法不行,到任务管理器,找到em原创 2021-09-30 12:19:58 · 39244 阅读 · 0 评论 -
AndroidStudio中SDKPlatForms为啥要使用GoogleApis Image?
以前我总有个疑问,那就是为啥会有两种Android的system image,一种是Intel x86 system Image,另一种是GoogleApi system Image,现在明白了,原来GoogleApi image是为了可以调试google play 服务用的。不过在Android11,似乎没有了只剩下了googleapi版了。...原创 2021-09-30 09:20:10 · 522 阅读 · 0 评论 -
解决Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)“ failed问题
由于Install Intel x86 Emulator Accelerator (HAXM installer) (revision: 7.6.5)安装失败,导致我的安卓虚拟机无法启动。解决办法有一下几种:1.开机进入BIOS打开Virtual虚拟化功能,然后进入Androidstudio 的SDK manager里面安装HAXM2.关闭系统中的Hyper-v,进入控制面板的程序和功能,将Hyper-v去选即可。3.如果前面的方法都不行,那么建议你重新下载AndroidStudio最新版进行安装原创 2021-09-29 16:04:07 · 7196 阅读 · 1 评论 -
C盘容量莫名小了很多?是时候清理AndroidStudio4那些大耗容量的操作了
用着用着,我的C盘就红了,预留了120个G的C盘竟然红了,打开某软件管理工具一看,也没啥大软件鸭。于是我删除了本想留着的最占容量的VisualStudio2015版本,留下了2019的版本。可是居然仅仅给我腾出了2个G的空间,毕竟我其他东西都是在其他盘。好了,C盘终于有G了,不再是几百兆的容量了。但是依旧还是红的。于是乎,我盯起了AndroidStudio,没错,我不得不再一次吐槽AndroidStudio的烂,虽然表面上它比VisualStudio轻,但是那只是装纯的,AndroidStudio的背后原创 2021-09-29 11:10:11 · 887 阅读 · 0 评论 -
解决AndroidStudio4.2.2无法预览一个Android项目工程的界面文件Exception raised during rendering: String index out of ran
某一日,打开Androidstudio4.2.2,open了一个一直以来在做的项目,或许是因为刚刚升级到4.2.2的原因,我打开一个个xml界面文件,结果…如下图所见,什么都看不见了,就只有一个扳手。正当我修复完提示的问题依然解决不了问题的时候,Stack Overflow上一个同样的问题帮助我解决了,虽说在那个问题中,这样的解决办法并不是提问者想要的答案,但却解决了我的问题。我这里显示不了界面的原因是:在EditText或者TextView有下面的这句话,删了就可以了。android:autofil原创 2021-09-18 16:30:22 · 620 阅读 · 1 评论 -
Android10判断网络连接的类型的函数实现
一个函数实现,就不废话了。直接上代码:private static boolean mobileConnected = false;private static boolean wifiConnected = false;private void checkNetworkConnection() { ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTI原创 2021-09-17 16:53:42 · 310 阅读 · 1 评论