
【android】
月疯
得到你最想要的东西,最保险的办法,那就是你能配得上你最想要的东西。机会是留给有准备的人,运气是留给有天赋的努力者。
展开
-
Android中MediaRecorder.stop()报错 java.lang.RuntimeException: stop failed.
E/AndroidRuntime(7698):Causeby:java.lang.RuntimeException:stopfailed.if(mediarecorder!=null){mediarecorder.stop();mediarecorder.release();mediarecorder=null;if(mCamera!=null){...原创 2021-06-29 18:54:39 · 2017 阅读 · 0 评论 -
Unsupported Modules Detected: Compilation is not supported for following modules: app, library. Unfo
1.file-Sync Project With Gradle Files解决掉了。如果还不行试试下面的。2.File - > Invalidate Caches / Restart - > Invalidate Caches&3.如上都不行 1-结束项目 2-关闭Android工作室 3-删除.IDEA目录 4-删除所有.iml文件 5-打开android studio并导入该项目...原创 2021-06-29 17:40:19 · 511 阅读 · 0 评论 -
android的AIDL的调用
首先我们新建两个工程文件:Server和Client,这里两个工程可以不创建Layout文件,因为这个实例中没用到图形化界面。在Server工程中,我们先要把目录结构由默认的Android改为Project,Android目录结构便于开发但是目录结构很不清晰,而一会儿为了让Client工程能够调用我们在Server工程中编写的服务则必须要将aidl目录整个拷贝到Client完全一样的位置,所以...转载 2019-06-10 19:12:31 · 302 阅读 · 0 评论 -
activity绑定service
第一步:启动一个service//开始绑定 Intent intent = new Intent(Activity1.this,Service1.class); bindService(intent, conn, Context.BIND_AUTO_CREATE);第二步:实现ServiceConnectionprivate Service1 myservice = nul...转载 2019-06-10 18:38:00 · 1836 阅读 · 1 评论 -
进程包活
因为ios在杀死app后都可以接收到通知,所以不懂的人就会觉得那Android应该都是可以的啊,解决方法:1、比如说什么搞两个service互相拉起,不可以2、APP杀死,收不到极光推送,网上说在mainfest注册自己的 recevice时,写入这两个就可以<action android:name="android.intent.action.BOOT_COMPLETED...转载 2019-06-10 17:32:50 · 217 阅读 · 0 评论 -
AccessibilityService的具体应用场景
1、抢红包插件先回顾一下抢红包的的流程:状态栏出现"[微信红包]"的消息提示,点击进入聊天界面 点击相应的红包信息,弹出抢红包界面 在抢红包界面点击"开",打开红包 在红包详情页面,查看详情,点击返回按钮返回微信聊天界面.以上是不在微信聊天界面时的流程.如果你所在的微信聊天窗口出现红包,则不会执行步骤1,而是直接执行2,3,4.如果是在微信好友列表时,收到红包,则会在列表项中显示[...转载 2019-06-10 16:59:27 · 849 阅读 · 0 评论 -
AccessibilityService(无障碍辅助服务)
深入AccessibilityService使用1、创建服务编写自己的服务类,需要继承AccessibilityService类.其中要实现onAccessibilityEvent(AccessibilityEvent event)及onInterruput()两个重要的方法:public class RobService extends AccessibilityService {...转载 2019-06-10 16:50:48 · 4907 阅读 · 0 评论 -
FaceDetector(人脸识别)
微软的 how-old.net 把人脸识别技术又大大的火了一把。通过大数据和复杂的算法,能够神奇的预测出照片中人物的性别和年龄。虽然错误率也不低,但是大家都抱着玩一玩乐一乐的心态把照片传上去让机器来鉴定一下自己的颜龄。Android 早已提供了 FaceDetector 类,今天就来看看如何使用这个类人脸检测吧。流程:1.打开文件夹选择照片2.将照片加载到 bitmap 中并缩...转载 2019-06-10 16:33:13 · 7688 阅读 · 1 评论 -
RecognizerIntent(语音识别)
过程如下:1、启动语音识别 Activity2、这里处理语音(传到 google 服务器处理)3、结果以 Acitivity 的结果返回(onActivityResult)主要用到的类为android.speech.RecognizerIntentpackage com.linc; import java.util.ArrayList; impor...原创 2019-06-10 15:57:54 · 1700 阅读 · 2 评论 -
画布 Canvas
Android Framework 提供了一些2D 画图的 API,android.graphics 包就是其中之一。为了画一些东西,需要4个元素(或称组件)协同来完成: 位图:Bitmap 来保持(hold)那些像素 画布:Canvas 来响应画画(draw)的调用(并将其写入 bitmap) 画笔:paint 描述画画的颜色和样式等 “颜料“:drawing...转载 2019-06-10 15:30:03 · 481 阅读 · 0 评论 -
android文本与布局
1、字符串资源里变量替换如项目中 values 下的 strings.xml其实,在 android 中也有这样的东西,那就是 XLIFF,全称叫 XML 本地化数据交换格式,英文全称 XML Localization Interchange File Format。 <string name="page">第%1$s页</string> 程序中只要给...原创 2019-06-10 15:20:32 · 723 阅读 · 0 评论 -
PreferenceActivity和PreferenceFragment实现设置界面
在进行Android开发的过程中,有时需要实现一个设置界面,就像下面的系统的显示设置。这样的界面自己实现起来略显繁琐,好在Android中已经实现了这样的设置界面,那就是PreferenceActivity。并且PreferenceActivity还有一个莫大的好处,配置信息会自动使用SharedPreferences进行保存,无需我们自己实现。将PreferenceActivity和Pr...转载 2019-06-10 15:05:38 · 498 阅读 · 0 评论 -
Android开发之PreferenceActivity和PreferenceFragment
在PreferenceActivity中,给我们提供了四个选项集成控件:ListPreference,EditTextPreference,CheckBoxPreference和RingtonePreference。注意:通过PreferenceActivity生成的XML文件,命名方式是定死了的,生成的XML文件在data/data/<工程名>/shared_prefs/下,...原创 2019-06-10 14:53:54 · 723 阅读 · 0 评论 -
android studio的一个bug
Could not find com.android.tools.build:gradle:4.1.首先打开android studio的安装目录直接找到gradle的目录:D:\android3.2\gradle\m2repository\com\android\tools\build\gradle发现里面没有4.1的gradle修改成上面已经存在的g...原创 2019-05-22 21:13:56 · 244 阅读 · 0 评论 -
Java无所不能的反射在Android中需要熟练的知识
什么是反射?反射 (Reflection) 是 Java 的特征之一,它允许运行中的 Java 程序获取自身的信息,并且可以操作类或对象的内部属性 简而言之,通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。程序中一般的对象的类型都是在编译期就确定下来的,而 Java 反射机制可以动态地创建对象并调用其属性,这样的对象的类型在编译期是未知的。所以我们可以通过反射机制直接...原创 2019-05-06 15:19:19 · 135 阅读 · 0 评论 -
google的开源项目WebRTC音视频通讯,为什么大家都在使用
WebRTC虽然冠以“web”之名,但并不受限于传统互联网应用或浏览器的终端运行环境。实际上无论终端运行环境是浏览器、桌面应用、移动设备(Android或iOS)还是IoT设备,只要IP连接可到达且符合WebRTC规范就可以互通。这一点释放了大量智能终端(或运行在智能终端上的app)的实时通信能力,打开了许多对于实时交互性要求较高的应用场景的想象空间,譬如在线教育、视频会议、视频社交、远程协助、远...转载 2019-02-15 18:43:28 · 3333 阅读 · 0 评论 -
Android BLE新手进入
我们提到了中央设备(central)和外围设备(peripheral),在这里我们可以这样简单的理解:中央设备(central):收到外围设备发出的广播信号后能主动发起连接的主设备,例如我们给摩拜单车开锁时我们的手机就是作为中央设备连接单车并进行开锁等一系列操作的,通常情况下同一时间一台中央设备只能与最多7台外围设备建立连接。外围设备(peripheral):能被中央设备连接的从设备,...转载 2018-12-20 23:46:57 · 534 阅读 · 0 评论 -
android系统下多媒体播放
播放音频和视频的源文件可以是一下三种:源文件(即res/raw下或assets下)文件系统(即sdcard)流媒体(即网络) 1、播放音频文件播放音频文件可以用MediaPlayer类或SoundPool类。下面我们来介绍这两个类。1.1、MediaPlayer从源文件(即res/raw下或asserts下)播放音频mMediaPlayer = MediaPlayer.cr...转载 2018-11-20 10:58:50 · 237 阅读 · 0 评论 -
assets和res/raw的用法
操作工程中assets和res/raw目录下的文件,那么这两个目录有什么用呢?assets和res/raw工程目录下都可以存放一些小于1M(2.3版本以前要求,否则将不能读出数据。),这些文件将被打包到APK中供应用使用。assets目录下的文件将不做任何处理被打包,而res/raw目录下的文件,有些文档说会编译为二进制,有些文档说不会。有一个原则就是最好不要将过大的文件打包到APK中,如果你的资...转载 2018-11-20 10:55:20 · 970 阅读 · 1 评论 -
Android工程的目录说明
目录结构1)src目录为源文件2)gen目录里的R.java文件为Eclipse自动生成文件,不必手动修改3)Android Library,应用运行的Android库4)assets目录,在这个目录里主要放置多媒体等一些文件5)res目录,这个目录主要放置应用用到的资源文件。drawable目录,这个目录里边主要放置应用到的图片资源layout目录,主要放置用到的布局文件。格式都是...原创 2018-11-20 10:53:38 · 281 阅读 · 0 评论 -
android 传感器的学习
在Android2.3 gingerbread系统中,google提供了11种传感器供应用层使用。01 #define SENSOR_TYPE_ACCELEROMETER 1 //加速度 02 #define SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力 03 #define SENSOR_TYPE_ORIENTATION ...转载 2018-11-14 09:22:36 · 196 阅读 · 0 评论 -
NestedScrollView、RecycleView、ViewPager 嵌套常见问题
在开发中我们经常会用到 NestedScrollView 和 RecycleView,一般情况下这两种布局是不需要进行嵌套的,很多情况下 RecycleView 就可以自行解决,但是毕竟是一般情况,因此超出一般情况外的,我们可能就需要进行嵌套了,虽然 Google 大大也不鼓励我们这样使用。这样使用可能会带来一些问题,一如当年的 ScrollView 和 ListView 的矛盾一样。这里就出现...转载 2018-11-10 11:33:43 · 2054 阅读 · 0 评论 -
ListView和RecycleView的性能比对
ListView相比RecyclerView,有一些优点:addHeaderView(), addFooterView()添加头视图和尾视图。 通过”android:divider”设置自定义分割线。 setOnItemClickListener()和setOnItemLongClickListener()设置点击事件和长按事件。这些功能在RecyclerView中都没有直接的接口,要自...转载 2018-11-09 15:57:30 · 2368 阅读 · 0 评论 -
RecycleView嵌套滑动机制
Android 5.0推出了嵌套滑动机制,在之前,一旦子View处理了触摸事件,父View就没有机会再处理这次的触摸事件,而嵌套滑动机制解决了这个问题,能够实现如下效果:为了支持嵌套滑动,子View必须实现NestedScrollingChild接口,父View必须实现NestedScrollingParent接口。而RecyclerView实现了NestedScrollingChild...转载 2018-11-09 15:55:03 · 1045 阅读 · 0 评论 -
RecycleView拖拽、侧滑删除
Android提供了ItemTouchHelper类,使得RecyclerView能够轻易地实现滑动和拖拽,此处我们要实现上下拖拽和侧滑删除。① 创建ItemTouchHelper.Callback类首先创建一个继承自ItemTouchHelper.Callback的类,并重写以下方法:getMovementFlags(): 设置支持的拖拽和滑动的方向,此处我们支持的拖拽方向为上下,滑...转载 2018-11-09 15:50:05 · 586 阅读 · 0 评论 -
RecycleView添加setEmptyView
ListView提供了setEmptyView()设置Adapter数据为空时的View视图。RecyclerView虽然没提供直接的API,但是也可以很简单地实现。创建一个继承RecyclerView的类,记为EmptyRecyclerView。 通过getRootView().addView(emptyView)将空数据时显示的View添加到当前View的层次结构中。 通过Adapte...转载 2018-11-09 15:47:18 · 653 阅读 · 0 评论 -
RecycleView添加HeaderView和FooterView
RecyclerView默认没有提供类似addHeaderView()和addFooterView()的API,因此这里介绍如何优雅地实现这两个接口。如果你已经实现了一个Adapter,现在想为这个Adapter添加addHeaderView()和addFooterView()接口,则需要在Adapter中添加几个Item Type,然后修改getItemViewType(),onCreate...转载 2018-11-09 15:46:04 · 792 阅读 · 1 评论 -
Recycle网格制式之瀑布流的实现
瀑布流样式RecyclerView的瀑布流布局管理器是StaggeredGridLayoutManager,它最常用的构造函数就一个,StaggeredGridLayoutManager(int spanCount, int orientation),spanCount代表每行或每列的Item个数,orientation代表列表的方向,竖直或者水平。看在代码中的使用。// 初始化布局...转载 2018-11-09 15:43:56 · 397 阅读 · 0 评论 -
RecycleView的网格样式
网格样式RecyclerView展示的样式由布局管理器LayoutManager来控制。网格样式的管理器是GridLayoutManager,看一下它最常用的两个构造函数以及参数含义。GridLayoutManager(Context context, int spanCount) spanCount,每列或者每行的item个数,设置为1,就是列表样式 该构造函数默认是竖直方向的网...转载 2018-11-07 16:22:18 · 585 阅读 · 0 评论 -
RecycleView的Item Animator动画
RecyclerView能够通过mRecyclerView.setItemAnimator(ItemAnimator animator)设置添加、删除、移动、改变的动画效果。RecyclerView提供了默认的ItemAnimator实现类:DefaultItemAnimator。如果没有特殊的需求,默认使用这个动画即可。// 设置Item添加和移除的动画mRecyclerView.s...转载 2018-11-07 16:19:10 · 4148 阅读 · 0 评论 -
RecycleView的Item Decoration间隔样式
RecyclerView通过addItemDecoration()方法添加item之间的分割线。Android并没有提供实现好的Divider,因此任何分割线样式都需要自己实现。自定义间隔样式需要继承RecyclerView.ItemDecoration类,该类是个抽象类,官方目前并没有提供默认的实现类,主要有三个方法。onDraw(Canvas c, RecyclerView paren...转载 2018-11-07 16:02:06 · 748 阅读 · 0 评论 -
List列表的万能的适配器
ListView的万能适配器:https://github.com/JoanZapata/base-adapter-helper首先介绍QuickAdapter.VH的实现:static class VH extends RecyclerView.ViewHolder{ private SparseArray<View> mViews; private V...转载 2018-11-07 15:58:41 · 442 阅读 · 0 评论 -
RecycleView的LayoutManager
Layout Manager布局管理器四大组成RecyclerView的四大组成是:Layout Manager:Item的布局。 Adapter:为Item提供数据。 Item Decoration:Item之间的Divider。 Item Animator:添加、删除Item动画。Layout Manager布局管理器在最开始就提到,RecyclerView 能够支持各...转载 2018-11-07 10:23:34 · 572 阅读 · 0 评论 -
RecycleView添加适配器的监听事件
看一下Adapter的完整代码。public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{ // 展示数据 private ArrayList<String> mData; // 事件回调监听 private MyAdapter.OnItemCli...转载 2018-11-06 19:54:08 · 366 阅读 · 0 评论 -
RecycleVier的简单实现
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);LinearLayoutManager layoutManager = new LinearLayoutManager(this );//设置布局管理器recyclerView.setLayoutManager(layoutManager);//设置为垂直布局...转载 2018-11-06 13:29:39 · 178 阅读 · 0 评论 -
Android之知识总结
Android博客的牛人自定义View基础 - 最易懂的自定义View原理系列(1)自定义View Measure过程 - 最易懂的自定义View原理系列(2)自定义View Layout过程 - 最易懂的自定义View原理系列(3)自定义View Draw过程- 最易懂的自定义View原理系列(4)Android事件分发机制详解:史上最全面、最易懂(5)Android 屏...翻译 2018-10-25 16:07:02 · 174 阅读 · 0 评论 -
listview的简单实现
1、listView的xml2、listVIew的每各Item的布局xml3、创建一个adapter继承BaseAdapter4、将数据绑定到视图 adapter的代码样例:public class MyAdapter extends BaseAdapter{ private LayoutInflater mInflater; private List...原创 2018-10-25 15:11:05 · 658 阅读 · 0 评论 -
listView使用checkBox的实现
listView里面使用checkBox;public class MainActivity extends AppCompatActivity { private ListView lv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat...原创 2018-10-25 14:49:05 · 340 阅读 · 0 评论 -
shape的xml用法
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent" android:layout_height="match_pa...原创 2018-10-25 11:53:33 · 1291 阅读 · 1 评论 -
simpleAdapter和ArrayAdapter实现
什么是适配器? 适配器是一个连接数据和AdapterView的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterView与数据的绑定更加简便,修改更加方便。将数据源的数据适配到ListView中的常用适配器有:ArrayAdapter、SimpleAdapter 和 SimpleCursorAdapter。ArrayAdapter最为简单,只能展...原创 2018-10-25 10:29:37 · 492 阅读 · 0 评论