- 博客(31)
- 资源 (236)
- 收藏
- 关注
原创 Android >> 错误:java.lang.IndexOutOfBoundsException: Inconsistency detected.
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.123.hello, PID: 9882 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{6614d2e po...
2019-08-30 15:14:42 1404
原创 Android >> 下拉刷新组件无法下拉
下拉刷新组件中必须放置可滑动的组件才能实现下拉效果,例如ScrollView 或者RecyclerView 等。
2019-08-27 07:46:12 396
原创 Android >> 55. 局域网共享
无线网络管理器WiFiManagerApp 若想访问外网资源,得先判断网络连接是否可用。当时检测连接的工具采用 了连接管理器 ConnectiityManager ,上网方式主要有两种,即数据连接和 WIFI 。不过ConnectivityManager 能笼统的判断能否上网并不能获知 WIFI 连接的详细信息。当前网络类型是 WIFI 时,要想得知 WIF 上网的具体信息,需另外通过无线网络...
2019-08-09 15:49:49 706
原创 Android >> 54. Lambda 表达式
若想要在Android 项目中使用Lambda 表达式或者Java 8 的其他新特性,首先需要修改app/build.gradle 文件:android { ... defaultConfig { ... jackOptions.enabled = true } compileOptions { sourceCompatibility JavaVersion.VERSION_...
2019-08-08 06:56:30 120
原创 Android >> 53. 创建定时任务
Android 中的定时任务一般有两种实现方式,一种是使用Java API 里提供 的Timer 类,一种是使用Android 的Alarm 机制。这两种方式在多数情况下都能实现类似的效果,但Timer 有一个明显的短板,它并不太适用于那些需要长期在后台运行的定时任务。Android 手机就会在长时间不操作的情况下自动让CPU 进入到睡眠状态,这就有可能导致Timer 中的定时任务无法正常运行...
2019-08-08 05:40:24 274
原创 Android >> 52. 定制自己的日志工具
我们需要在当程序处于开发阶段时让日志打印出来,但当程序上线之后就把日志屏蔽掉。我们只需要定制一个自己的日志工具即可。新建一个LogUtil 类:public class LogUtil { public static final int VERBOSE = 1; public static final int DEBUG = 2; public static final int INF...
2019-08-08 04:10:54 157
原创 Android >> 51. 使用Intent 传递对象
我们知道,若只是传输一些常用的数据类型的数据,例如String、int 等。可以使用intent.putExtra() 方法。但是当我们需要传递一些自定义对象的时候,就需要使用如下方式:使用Intent 来传递对象通常有两种实现方式:Serializable 和Parcelable。Serializable 方式Serializable 是序列化的意思,表示将一个对象转换成可存储或可传输的...
2019-08-08 01:32:03 160
原创 Android >> 50. 全局获取Context
Android 提供了一个Application 类,每当应用程序启动的时候,系统就会自动将这个类进行初始化。而我们可以定制一个自己的Application 类,以便于管理程序内一些全局的状态信息,比如说全 局 Context。然后我们就可以在项目的任何地方都能轻松获取到Context构建自己的Application1. 创建一个MyApplication 类继承自Applicationc...
2019-08-08 00:42:52 137
原创 Android >> 49. Material Design(七)将系统状态栏融入背景
在Android 5.0 及之后的系统都是支持将系统状态栏融入背景这个功能的,因此这里我们就来实现一个系统差异型的效果,在Android 5.0 及之后的系统中,使用背景图和状态栏融合的模式,在之前的系统中使用普通的模式。想要让背景图能够和系统状态栏融合,需要借助android:fitsSystemWindows 这个属性来实现。在CoordinatorLayout、AppBarLayout、...
2019-08-06 22:17:49 231
原创 Android >> 48. Material Design(六)可折叠式标题栏
CollapsingToolbarLayoutCollapsingToolbarLayout 是一个作用于Toolbar 基础之上的布局,它也是由Design Support 库提供的。CollapsingToolbarLayout 可以让 Toolbar 的效果变得更加丰富,不仅仅是展示一个标题栏,而是能够实现非常华丽的效果。不过,CollapsingToolbarLayout 是不能独立存...
2019-08-06 21:16:08 403
原创 getAdapterPosition() 等于 -1 的解决办法
说实话,遇到这个问题,我找了很久没有找到问题在哪,但是我想到另一种解决办法,也许对你有用。我一开始是在RecyclerView 的Adapter 类的setOnClickListener() 方法中调用getAdapterPosition() 方法的:public FruitAdapter.ViewHolder onCreateViewHolder(@NonNull ViewGroup p...
2019-08-06 19:27:55 3897 14
原创 (androidx.appcompat.widget.Toolbar) cannot be applied to (android.widget.Toolbar)
当出现这个或是类似的错误时,说明我们的Toolbar 并不是它所想要的Toolbar,也就是说明我们需要将我们的Toolbar 转变一下类型。当然,通过名字是无法进行类型转换的,因为代码里都是:Toolbar toolbar = new Toolbar;解决办法就是将import 改掉:import android.widget.TextView;import android.widg...
2019-08-06 19:22:08 8264 1
原创 Android >> 47. Material Design(五)下拉刷新
SwipeRefreshLayout 就是用于实现下拉刷新功能的核心类放置刷新控件<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-au...
2019-08-06 12:55:29 218
原创 Android >> 43. Material Design(一)Toolbar
Toolbar先把系统自带的Actionbar 设置为NoActionBar在xml 文件中放置一个Toolbar 控件:<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" ...
2019-08-06 10:30:39 220
原创 Android >> 46. Material Design(四)卡片式布局
CardViewCardView 也是一个FrameLayout,只是额外提供了圆角和阴影等效果,看上去会有立体的感觉。我在此使用RecyclerView 内嵌CardView 进行演示因为我们要使用RecyclerView、CardView 和Glide(开源图片加载库https://github.com/bumptech/glide)所以需要添加以下dependencies:impl...
2019-08-05 19:42:49 335
原创 Android >> 45. Material Design(三)悬浮按钮和可交互提示
FloatingActionButton和普通Button 没什么两样,首先xml 文件中添加控件,然后java 文件中获取实例并处理点击事件。<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http:/...
2019-08-05 14:59:58 231
原创 Android >> 44. Material Design(二)滑动菜单
DrawerLayout很简单:<androidx.drawerlayout.widget.DrawerLayout android:id="@+id/drawer_layout" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent"...
2019-08-05 13:17:43 392
原创 Git 使用指南
初始配置安装好Git,打开Git Bash首先配置自己的身份:git config --global user.name "xxx"git config --global user.email "xxx@qq.com"然后可以查看配置是否成功:git config --global user.namegit config --global user.email创建代码仓库仓库...
2019-08-04 23:28:59 2338
原创 Android >> 40. 服务(二)
定义一个服务项目列表:包名 → New → Service → Service,然后Finish 即可除了onBind() 这个抽象方法,我们还需要再重写几个:onCreate()、onStartCommand()、onDestroy()public class MyService extends Service { public MyService() { } @...
2019-08-03 20:34:12 279
原创 Android >> 41. 通知(Notification)
通知的基本用法首先需要一个NotificationManager 来对通知进行管理,可以调用Context 的getSystemService() 方法获取到。getSystemService() 方法接收一个字符串参数用于确定获取系统的哪个服务,我们传入Context.NOTIFICATION_SERVICE 即可:NotificationManager manager = (Notifi...
2019-08-03 17:01:47 207
原创 对于SkAndroidCodec::NewFromStream returned null,我的解决方案
我遇到这个问题,而不能成功创建通知,原因是我的API 大于26,需要创建NotificationChannelNotification notification = new NotificationCompat.Builder(this, "chat") .setContentTitle("标题") .setContentText("内容") .s...
2019-08-03 15:11:44 2341
原创 Android >> 39. 服务(一)实现多线程
服务并不是运行在一个独立的进程当中的,而是依赖于创建服务时所在的应用程序进程。当某个应用程序进程被杀掉时, 所有依赖于该进程的服务也会停止运行。实际上服务并不会自动开启线程,所有的代码都是默认运行在主线程当中的。也就是说,我们需要在服务的内部手动创建子线程,并在这里执行具体的任务,否则就有可能出现主线程被阻塞住的情况。线程子线程的创建方法:实现Runnable 接口class MyT...
2019-08-02 22:53:47 257
原创 OpenMV >> 6. 使用外设
常用函数# 延时50mspyb.delay(50)# 获取从启动开始计时的毫秒数pyb.millis()LEDfrom pyb import LEDled = LED(1) # 红ledled.toggle()led.on()#亮led.off()#灭LED(1) -> 红LEDLED(2) -> 绿LEDLED(3) -> 蓝LEDLED(4...
2019-08-02 16:28:01 1337
原创 OpenMV >> 5. 颜色形状同时识别
以识别红色的圆形为例。首先我们进行圆形识别,然后在识别到的圆形区域内进行颜色统计,判断区域内最多的颜色是否是红色。import sensor, image, timesensor.reset()sensor.set_pixformat(sensor.RGB565)sensor.set_framesize(sensor.QQVGA)sensor.skip_frames(time = 20...
2019-08-02 15:44:09 8470 2
原创 OpenMV >> 4. 寻找色块
find_blobs 函数image.find_blobs(thresholds, roi=Auto, x_stride=2, y_stride=1, invert=False, area_threshold=10, pixels_threshold=10, merge=False, margin=0, threshold_cb=None, merge_cb=None)thresholds...
2019-08-02 14:53:37 2542
原创 OpenMV >> 3. 画图
颜色可以是灰度值**(0-255),或者是彩色值(r, g, b)** 的tupple画线image.draw_line(line_tuple, color=White)line_tuple 的格式是**(x0, y0, x1, y1),意思是(x0, y0)** 到**(x1, y1)** 的直线。颜色可以是灰度值**(0-255),或者是彩色值(r, g, b)** 的tupple。...
2019-08-02 13:02:18 957
原创 OpenMV >> 2. 使用图像的统计信息
StatisticsROI 感兴趣区域roi 的格式是**(x, y, w, h)** 的tupplex:ROI区域中左上角的x坐标;y:ROI区域中左上角的y坐标;w:ROI的宽度;h:ROI的高度。Statisticsimage.get_statistics(roi=Auto)其中roi 是目标区域。statistics.mean() 返回灰度的平均数(0-255) ...
2019-08-02 12:53:19 1202
原创 OpenMV >> 1. 基本方法
获取/设置像素点通过image.get_pixel(x, y) 方法来获取一个像素点的值对于灰度图:返回(x, y) 坐标的灰度值;对于彩色图:返回(x, y) 坐标的(r, g, b) 的tuple。通过image.set_pixel(x, y) 方法来设置一个像素点的值对于灰度图:设置(x, y) 坐标的灰度值;对于彩色图:设置(x, y) 坐标的(r, g, b) 的值。...
2019-08-02 12:40:31 1764
原创 Android >> 38. 使用网络(二)
解析JSON 格式数据先准备一个文件:新建一个get_data.json 文件,编辑,输入:[{"id":"5","version":"5.5","name":"Clash of Clans"},{"id":"6","version":"8.0","name":"Boom of Beach"},{"id":"7","version":"10.0","name":"Waao"}]PC ...
2019-08-01 09:58:48 354
原创 Android >> 37. 使用网络(一)
使用网络都要声明权限:<uses-permission android:name="android.permission.INTERNET" />WebView 的用法webView = findViewById(R.id.web_view);webView.getSettings().setJavaScriptEnabled(true);webView.setWebVie...
2019-08-01 08:52:36 312
宇树科技 中狗 哈士奇大小 aliengo宣传单-中文v1.3 - 20221207.pdf
2023-04-17
哈尔滨工业大学:ChatGPT调研报告
2023-03-21
Robust Capon Beamforming仿真代码(Matlab)
2023-03-14
ESP32-S3 MicroPython 固件(2022-12-20版本)带urequests 库
2023-01-01
ESP32-S3 MicroPython 开发需要用到的CH343 驱动、MicroPython 固件、固件烧录工具
2023-01-01
《AE脚本设计参考手册V1.0.0》+《After-Effects-CS6-Scripting-Guide》
2022-12-14
shapeNet数据集,包括hdf5、带法向量、不带法向量等三种格式数据集-网盘下载链接(永久有效)
2022-11-29
NoDistanceY-SD卡测试
2022-09-26
STM32CubeMX配置SD+DMA+Fatfs(正点原子F767开发板)
2022-09-19
2021新消费人群报告
2022-08-03
百度内部培训:怎样写好MRD(市场需求文档)
2023-11-27
deloitte超速发展:全球电池储能市场面临的挑战与机遇
2023-06-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人