Android
Edison_Xian
熟练使用 c,v
展开
-
android 没有串口读写权限
android 没有串口读写权限原创 2022-10-08 16:47:34 · 1792 阅读 · 0 评论 -
Android 问题:Installation failed due to: ‘Invalid File:
背景:将一个项目直接复制到了一个新的工程问题:点击运行按钮无法找到apk,无法install问题原因:before launch里没有Gradle-awake解决步骤 :添加一下Gradle-awake即可在弹出的框做如下操作选择Gradle-awake 添加 apply即可...原创 2021-10-28 15:12:00 · 4907 阅读 · 5 评论 -
Java的Byte.parseByte() 16进制转byte的坑
把一个16进制的String转成byte,一开始用的方法是 byte v = Byte.parseByte("EF", 16);然后报了值范围越界的错误java.lang.NumberFormatException: Value out of range for byte: "EF"主要原因是byte 的范围是 -128~127,把 EF 当成正数来转换,结果是 239,就越界了。最后有两个处理方法: byte v = (byte) Integer.parseInt("9D", 16);转载 2021-08-31 14:10:52 · 1215 阅读 · 1 评论 -
Android ViewPager 设置预加载页数
viewpager默认预加载三页,分别是当前-1,当前页,当前+1,当超出预加载页面时,超出的页面会被destory。此时再使用超出预加载的页面会报空指针。myVp.setOffscreenPageLimit(5); //设置预加载页数,左右各5个(默认是1)...原创 2021-08-16 11:22:47 · 1146 阅读 · 0 评论 -
AndroidStudio git上传屏蔽配置文件
操作在.gitignore 文件里添加需要屏蔽的文件位置即可如下图原创 2021-08-06 15:12:31 · 298 阅读 · 0 评论 -
adb截屏
使用screencap 命令,对安卓设备的当前屏幕进行截屏,示例:adb shell screencap -p /sdcard/01.png将截屏的图片下载到本地电脑,示例:adb pull /sdcard/01.png默认保存在 c盘user目录下原创 2021-01-27 09:04:30 · 518 阅读 · 0 评论 -
解决tts播报数字类似155读成一百五十五的办法:将字符串里的每个数字后加一个空格
//将字符串里的数字后加一个空格 StringBuffer b = new StringBuffer(); for (int i = 0; i < s.length(); i++) { String c = String.valueOf(s.charAt(i)); boolean digitsOn原创 2021-01-23 14:53:15 · 825 阅读 · 0 评论 -
viewPager简单的实现全屏
需求:点击按钮可以将viewpager填充整个屏幕,再次点击则缩小至初始大小。思路:1.使用constraintlayout布局,将屏幕内的其他控件都直接或间接的依赖于view pager控件2.在按钮的点击事件里,动态修改viewPager的LayoutParams的宽度和高度。(相当于放大时将屏幕内其他的控件挤出屏幕)xml代码:<androidx.viewpager.widget.ViewPager android:id="@+id/viewPager"原创 2021-01-05 16:09:45 · 454 阅读 · 0 评论 -
Android OkHTTP CLEARTEXT communication to host not permitted by network security policy解决
问题: 由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加载失败,https 不受影响。为此,OkHttp3 做了检查,所以如果使用了明文流量,默认情况下,在 Android P 版本 OkHttp3 就抛出异常: CLEARTEXT communication to " + host + " not pe原创 2020-12-04 15:11:02 · 417 阅读 · 0 评论 -
Android TextToSpeech: speak failed: not bound to TTS engine
Android的tts在一段时间不使用后,内存会被系统回收。解决的方法,在onInIt方法里进行播报功能 public class MyTTS implements TextToSpeech.OnInitListener { private TextToSpeech mTTS; private Context mContext; private String text; /** * 初始化 * * @param status原创 2020-12-02 14:00:41 · 4676 阅读 · 2 评论 -
Android点击home键之后重新打开app,再次点击桌面图标避免再次重新启动程序的解决办法
问题:点击home键之后,再次打开会进入登录界面,要求重新输入密码。只有安装后就打开app,然后一直不退出,才会出现这个问题。解决办法:在第一个启动页面的onCreate()方法的setContentView()方法启动前加入如下代码:if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return;原创 2020-11-18 10:53:06 · 721 阅读 · 0 评论 -
[Android Studio]Installation failed due to: ‘-99‘
清理一下后台,释放一下内存就OK了原创 2020-11-16 13:45:54 · 700 阅读 · 0 评论 -
AndroidStudio INSTALL_FAILED_TEST_ONLY的原因
问题AS进行真机调试时,安装时报INSTALL_FAILED_TEST_ONLY错误,上网搜索后发现是as3.0会在debug包的manifest文件application标签里自动添加 android:testOnly="true"属性解决在项目中的gradle.properties全局配置中设置:android.injected.testOnly=false或者 install时加 -tadb install -t app-debug.apk参考博客...转载 2020-11-16 13:27:21 · 442 阅读 · 0 评论 -
Android自定义dialog弹窗
主要实现过程就是自定义一个layout布局文件,然后通过LayoutInflater将自定义的布局文件填充进自定义的dialog里。1.layout布局<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextVi原创 2020-09-11 13:45:36 · 449 阅读 · 0 评论 -
设置ViewPager的动画切换时间
ViewPager的切换使用时间是系统给定的,如果我们需要自己设置切换使用时长,系统在ViewPager类中是没有给出方法直接设置的,所以我们需要自己通过其他方法来进行设置。经过一番搜索,找到的解决方法是通过反射来自定义切换的时间1.创建一个类继承Scroller/** * 改变动画切换速度 */public class MyScroller extends Scroller { private int mDuration = 1000; public FixedSpeedS原创 2020-08-28 11:13:48 · 1226 阅读 · 0 评论 -
android sqlite数据库的简单使用
1.继承SQLiteOpenHelper类public class DatabaseHelper extends SQLiteOpenHelper { //带全部参数的构造方法,此构造函数必不可少 public DatabaseHelper(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) { supe原创 2020-08-25 15:51:57 · 182 阅读 · 0 评论 -
ViewPager页面切换
最近有一个需求:服务端有两个页面来回切换,页面的内容需要随着客户端的修改而修改,服务端页面切换的时间在客户端可以修改。一开始直接用intent来写,结果到最后内存泄露了…然后换成ViewPager来切换页面1.adapter适配器众所周知,viewpager需要adapter适配器来填充页面在这里插入代码片...原创 2020-08-25 15:27:19 · 804 阅读 · 0 评论 -
Android:java.lang.OutOfMemoryError
解决Android 内存溢出可以在清单列表添加以下两行: android:hardwareAccelerated="false" android:largeHeap="true"android:hardwareAccelerated=“false” 是禁止启用硬加速android:largeHeap=“true” 是扩大虚拟机内存(最简单粗暴的方式)原文地址...转载 2020-08-22 13:54:04 · 324 阅读 · 0 评论 -
Android打开系统自带相册权限不足
报错信息:java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media/20 from pid=711, uid=10074 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()解决:加以下权限原创 2020-08-22 12:01:35 · 1096 阅读 · 0 评论 -
Android中使用openFileOutput保存数据至文件夹
直接上代码,存储的路径在默认的工程包名下面/** * 把数据存到文件里 * 存储路径默认为 /data/data/包名/files/ * * @param data 要保存的数据 * @param fileName 文件名 */ private void save(String data, String fileName) { FileOutputStream out = null; Bu原创 2020-08-21 15:03:13 · 1419 阅读 · 1 评论 -
ViewPager+Fragment滑动页面使用的问题记录
1.ViewPager里面Fragment滑动卡顿问题:如果Fragment添加背景图的时候,滑动ViewPager会很卡。如果把背景图去掉,滑动又变得流畅。百度后发现:引用背景图时,图片要放在mipmap包中将图片从drawable中转移到mipmap后,滑动ViewPager就正常了2. Fragment加载的布局页面里的控件无法使用onClick属性会报以下错误:java.lang.IllegalStateException: Could not find method onLogou原创 2020-08-05 11:30:34 · 211 阅读 · 0 评论 -
Android Fragment和ViewPager绑定使用,做出页面滑动的效果
1.新建两个类继承Fragment复写onCreateView方法,把xml填充进去。public class FirstFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflat原创 2020-08-04 16:49:02 · 500 阅读 · 1 评论 -
Android 设置全屏显示
1.代码修改 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //取消标题 requestWindowFeature(Window.FEATURE_NO_TITLE); //取消状态栏 getWindow().setFlags(WindowManager.LayoutPa原创 2020-08-04 15:45:58 · 661 阅读 · 0 评论 -
安卓控件显示等宽字体的办法
增加一个属性即可:<TextView android:typeface="monospace"原创 2020-07-30 16:28:27 · 226 阅读 · 0 评论 -
Android TTS 实现中文播报
最近用到了TTS播报的功能,简单封装一下,以此记录。实现TextToSpeech.OnInitListener接口,重写onInit方法。直接贴代码public class MTTSDemo implements TextToSpeech.OnInitListener { private TextToSpeech mTTS; private Context mContext; public MTTSDemo(Context mContext) { this.m原创 2020-07-23 15:16:08 · 1670 阅读 · 1 评论 -
android基于tcp写一个客户端与服务端进行通信
主要分为三部分:1.和server端建立连接。2.接收server端传递的数据。3.发送数据给server端。1.和server端建立连接:其实很简单,只要用把server端的ip和port传给socke就可以了,注意点是耗时操作要开个子线程来进行/** * 连接线程 */ class ConnectServer extends Thread { @Override public void run() { super.原创 2020-06-28 22:43:43 · 782 阅读 · 0 评论 -
AndroidStudio项目上传至github和码云
一、安装git百度git官网下载安装就好二、上传本地代码1.VCS里选择enable…2.弹框这里选择git3.选择完以后菜单栏多出如下几个按钮蓝色向下箭头是更新项目绿色勾号是commit代码1是选择要commit的代码2是填commit信息4.选择需要上传的代码上传至GitHub5.弹窗输入github账户密码这边我已经登陆了,没有界面6.share到GitHub取个仓库名,点击share就ok了。7.上传代码至码云AndroidStudio的代码上传至码云需原创 2020-06-19 22:47:19 · 188 阅读 · 0 评论 -
Android 练习 :智能农业项目
Android 练习 :智能农业项目一.项目需求:1、应用需要登录后才能进入应用首页。2、工作台为用户展示最新的功能轮播图3、展示沙盘中Co2、光照、空气、土壤等情况4、用户可在详情页设置沙盘设备的开关来改变沙盘内的Co2、光照、空气、土壤等情况5、用户可在阀值设置页,设置Co2、光照、空气、土壤等阀值。二.项目实现:1.整个项目分为两个主要界面(一个登陆界面,一个主体界面)1)...原创 2019-05-17 21:30:21 · 1176 阅读 · 11 评论 -
Android基础设置
Android Activity基础知识:1:什么是Activityactivity是一个应用程序组件,提供了用户与程序交互的界面。2:如何把一个activity设置为程序主页面把这一段在要设置为主页面的activity下配置3:activity的各级生命周期:1)运行期(running):用户可见,有焦点,可以交互(当前显示在屏幕的activity(位于任务栈的顶部),用户可...原创 2018-12-11 22:11:07 · 111 阅读 · 0 评论 -
Android常用控件
一:textview的常用属性有哪些1 layout_width / layout_height:指定控件的宽度 高度match_parent:填充父窗体wrap_content: 包裹内容设置具体数值 单位dp2 text: 要显示的内容3 background:背景4 lines 可以显示的行数 可以获取全部数据5 maxlines 最大显示的行数,与lines在现实上...原创 2018-12-12 22:37:21 · 84 阅读 · 0 评论 -
Android 飞机大战详解与感悟
一.飞机大战的整体思路:飞机大战的主要使用的方法大纲:1.概略:Android的飞机大战用的是SurfaceView()来写,那么首先我们要继承SurfaceView这个类,然后我们还需要用多线程的来运行,那么还要实现Runnable以及SurfaceHolder.CallBack接口。实现多线程就必须要用到run()方法。 由于飞机大战的大部分工作是需要画图片到app里,那么我们又...原创 2018-05-31 22:27:33 · 3946 阅读 · 20 评论 -
Android 学习 SurfaceView
一.SurfaceView(1)作用:SurfaceView 继承了Viwe,有View的一切特性,需要通过Canvas画布来绘制。 在Android里主要用来做游戏。(2)特点:1.不能单独用来显示,必须要依附一个窗体。 2.可以直接在子线程中刷新UI。(3)使用方式:1.在布局里放入SurfaceView 2.实现SurfaceHolder.Callb...原创 2018-05-29 21:57:52 · 495 阅读 · 0 评论 -
Android学习 SoundPool
SoundPool只能播放短的音乐,常用来做游戏音效或铃声SoundPool使用:1.将音乐文件拷贝到项目里 2.新建一个实例对象 3.使用load()方法,让SoundPool实例加载音效资源,该方法会返回一个整型的soundID 4.使用play()方法播放音效实现思路:1.创建对象:SoundPool只有一个构造方法: SoundPool(int maxS...原创 2018-05-30 22:15:51 · 261 阅读 · 0 评论