安卓
文章平均质量分 61
正坤_x
原理是便于人类使用自然语言描述和理解的,而实现是可以在计算机上运行的。
展开
-
安卓view中悬浮层:ViewOverlay
安卓view中悬浮层:ViewOverlay。原创 2022-03-11 07:00:00 · 1431 阅读 · 0 评论 -
安卓View的代理分发事件TouchDelegate
安卓触摸事件进阶:TouchDelege。原创 2022-03-10 19:00:00 · 2972 阅读 · 0 评论 -
安卓图片二值化实现
安卓实现图片单阈值二值化原创 2022-03-03 11:16:25 · 986 阅读 · 0 评论 -
greenDao的实现原理
核心:首先明确一点,sqlite操作都是依靠sql语句的,所以 greendao的所有api及实现都是为这个准则服务的。变化:3.0之前需要通过新建GreenDaoGenerator工程生成Java数据对象(实体)和DAO对象,非常的繁琐而且也加大了使用成本。GreenDao 3.0最大的变化就是采用注解的方式通过编译方式生成Java数据对象和DAO对象。DatabaseOpenHelper也是实现了SQLiteOpenHelper的一个帮助类,它内部可以获取到两种不同的数...原创 2020-11-03 13:06:07 · 934 阅读 · 0 评论 -
讲讲Handler实现原理
各主要类作用:Handler:负责发送消息及处理消息Looper:复制不断的从消息队列中取出消息,并且给发送本条消息的HandlerMessageQueue:负责存储消息Message:消息本身,负责携带数据分发流程:初始化消息队列,创建messageQueue并绑定到Looper上。Handler的sendMessage发起消息处理流程开端,创建Message并放入到MessageQueue中,由Looper的无限循环任务唤醒阻塞,开始分发Message,执行Message的Runable原创 2020-11-02 23:53:48 · 567 阅读 · 0 评论 -
android进程通信:eventBus的进程通信方案HermesEventBus
HermesEventBus一个基于EventBus的、能在进程间发送和接收event的库,解决EventBus没有进程通信能力的问题。使用场景:在IPC或者插件开发中非常有用。github地址:https://github.com/Xiaofei-it/HermesEventBus设计思路:每次一个event被发送都会经过以下四步:1、使用Hermes库将event传递给主进程。2、主进程使用EventBus在主进程内部发送event。3、主进程使用Hermes库将e.原创 2020-11-02 22:19:03 · 1632 阅读 · 0 评论 -
kotlin在databinding中的应用
伴生函数定义class OrderListPageBean{ companion object{ fun test1(num:Int){ } } }在java中使用OrderListPageBean.Companion.test1(1)在xml中使用android:text="@{OrderListPageBean.Companion.test1(1)}"不过在当前版本,能链接上,但是没法编译通过得使用ob原创 2020-06-02 12:23:17 · 3467 阅读 · 0 评论 -
FutureTask是如何实现获取线程返回结果?
问题:线程的执行时间,执行顺序不可控制,那么FutureTask是怎么在这不确定中得到确定的返回值呢?查询过程:百度了很多资料,很多博客上也有说实现原理,包括状态解答 private static final int NEW = 0; 新建状态 private static final int COMPLETING = 1; 进行中状态 private static final int NORMAL = 2; 正常结束 private s原创 2020-06-01 10:23:01 · 4594 阅读 · 0 评论 -
android:关于Calendar取值星期月份的关系问题
本篇注意是为了提醒大家,实际我们的认知和计算机中取 月和星期 的值的对应关系一,取星期的值Calendar.get(Calendar.DAY_OF_WEEK);的取值是 1-7,所以按照index取值,得减去1所以方法的取值需要减1注释:按照西方的周习惯,周日是排在第一位的,所以,星期放入数组的顺序要注意二,取月份的值int month = (Calendar.g...原创 2019-11-08 11:01:39 · 8671 阅读 · 0 评论 -
Android:命令行方式获取屏幕分辨率
不想写app代码,想简单一些获取手机的分辨率,办法就是采用adb命令:打印详细方式:adb shell dumpsys window displays打印简单方式:adb shell wm size按照顺序,详细模式,简单模式,用的是小米2...原创 2019-11-04 19:31:06 · 9505 阅读 · 0 评论 -
android:使用设置TextView的drawable,有奇效
设置TextView的drawable代码设置: setCompoundDrawables()Drawable drawable = getResources().getDrawable(image);// 这一步必须要做,否则不会显示.int px = DensityUtils.dip2px(5);//这里也别说明一下,是要动态改变显示图标的大小(在xml里是没有api改变的)...原创 2019-11-02 18:07:27 · 9328 阅读 · 0 评论 -
android mvvm入门
0.开启mvvm许可1,书写布局<layout>包裹,<data>导入对象<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:to...原创 2019-11-01 23:16:38 · 5809 阅读 · 3 评论 -
kotlin开发:androidstudio无法编译kotlin项目解决办法
0。创建kotlin项目,但是总是不成功猜想:是否是因为androidstudio的版本3.4不支持kotlin的1.3.21,导致的项目编译失败呢?安装之后还是失败,于是继续解决.1。androidStudio报错No cached version available for offline mode 解决方法原因是之前为了提高编译速度,在Gradle设置选项中开启了O...原创 2019-11-01 10:09:58 · 7994 阅读 · 0 评论 -
微信小程序:页面生命周期
下图说明了页面Page实例的生命周期。转载 2019-10-29 11:37:35 · 651 阅读 · 0 评论 -
Android编译错误:Error:Configuration with name ‘default‘ not found.
AndroidStudio在更新了项目之后发现Error:Configuration with name 'default' not found.错误原因:在上传项目的时候,只是上传了包含三方库的配置文件,并没有上传三方库,引起的问题解决方法:三方库完整上传就可以了...原创 2017-02-13 10:33:50 · 715 阅读 · 0 评论 -
常用组件:android的多选按钮CheckBox
CheckBox是多选按钮,具有两种选择状态操作的特殊按钮,主要功能是帮助用户完成复选操作。虽然不如前几个组件用的多,但是在很多交互操作上能实现不错的效果。基本用法<CheckBox android:text=" 全选" android:layout_width="wrap_content" android:layout_heig...原创 2019-09-14 00:27:36 · 1328 阅读 · 0 评论 -
常用组件:android的单选按钮RadioButton
学习完复选按钮,在来学习单选按钮(复选相对的就是单选嘛),这个按钮也比较简单,但是会用到一些组合组件的思想,大家可以认真体会!基本用法RadioButton经常会结合RadioGroup一起使用,实现多项单选功能的操作<RadioGroup android:id="@+id/job_list" android:layout_...原创 2019-09-14 00:53:11 · 866 阅读 · 0 评论 -
常用组件:ViewPager和View的组合
引言ViewPager 是 android 扩展包 v4 包中的类,这个类可以让用户左右切换当前的 view。ViewPager 直接继承了 ViewGroup,所有它是一个容器类,可以在其中添加其他的 view 类。ViewPager 需要一个 PagerAdapter 适配器类给它提供数据。ViewPager 经常和 Fragment 一起使用,并且提供了专门的 FragmentPager...原创 2019-09-21 22:11:22 · 1687 阅读 · 0 评论 -
常用组件:ViewPager和fragment组合
引言viewpager和fragment是项目中亮相最多的组合,很多场景,例如 项目起始页,新闻首页,商城分类页,订单列表页等等,应用场景广泛,希望大家好好学习基本用法xml文件<LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"...原创 2019-09-21 22:55:56 · 820 阅读 · 0 评论 -
android快被废弃的组件:listview仍有学习意义
引言listView就是我们过去常用的列表组件,不过现在已经基本被recycleView取代了,主要还是listview的性能和可扩展性跟不上新的recycleView,越来越少的场景能够使用它,不过recycleView脱胎于Listview和GridView,并进行了大量优化,所以学习Listview仍然很有意义。基本用法列表效果如下xml文件<Linea...原创 2019-09-22 06:56:12 · 1680 阅读 · 0 评论 -
android组件:GridView网格布局基本实现
在Android程序设计中GridView跟ListView都是比较常用的多控件布局,GridView的用法很多,主要凸显的是那种网格式布局,既有横向也有纵向的数据显示。基本用法效果图实现思路是1、初始化控件2、定义图片资源mThumbIds3、定义ImageAdapter创建item布局<RelativeLayout android:la...原创 2019-09-22 22:09:56 · 1325 阅读 · 0 评论 -
android:RecyclerView基本用法
引言5.0新控件RecyclerView,它直接提供了回收复用的功能,并且还提供了一种插拔式的体验,高度的解耦,异常的灵活,通过设置它提供的不同LayoutManager,ItemDecoration , ItemAnimator 实现 ListView,GirdView,瀑布流等效果。基本用法首先,由于 RecyclerView 属于 v7-支持库,因此我们在使用之前需要先添加依赖:...原创 2019-09-23 13:00:45 · 1245 阅读 · 0 评论 -
android组件:活跃界面activity
activity中Activity fragmentActivityAppCompatActivity的区别:Activity是最基础的一个,是其它类的直接或间接父类。Activity中只能使用系统自带的host Fragment(API Level 11中加入),对应getFragmentManager方法来控制Activity和Fragment之间的交互。FragmentAct...原创 2019-09-29 20:21:20 · 812 阅读 · 0 评论 -
常用组件:android的按钮组件Button
点击按钮是最常用的几个组件了,在android中是Button类,区别于Textview,Button最主要的特点是焦点和默认点击效果非常集中,我们一起了解一下。 基本写法:<Button android:id="@+id/btn_click_one" android:layout_width="wr...原创 2019-09-12 17:59:03 · 2819 阅读 · 0 评论 -
查漏补缺:Android 获取屏幕宽高的方法统计
获取设备屏幕高度是个很重要的属性,把它记录下来一,通过Display获取 Display display = getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); Log.d(TAG, "width =...原创 2019-09-10 20:08:08 · 989 阅读 · 0 评论 -
常用组件:android的输入组件EditText
本文的主要内容是EditText输入框的基本api介绍,前面的textView是一个单纯用于显示的view,而EditText是一个允许用户输入文字的可交互组件,让界面可以修改了! 基本代码示例为: <EditText android:inputType="date" android:l...原创 2019-09-09 16:17:14 · 1704 阅读 · 0 评论 -
关于catch的异常另一种用法
/** * * * @param num * @return<ul> 判断结果: <li>true:整数 <li>false:非整数 */public static boolean isInt(String num) {try {Integer.parseInt(num);return true;}catch (NumberFormatExce...原创 2016-03-10 15:44:59 · 668 阅读 · 0 评论 -
Android得到控件在屏幕中的坐标
自http://blog.csdn.net/sjf0115/article/details/7306284getLocationOnScreen,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标getLocationInWindow,计算该视图在它所在的widnow的坐标x,y值,//获取在整个...转载 2016-03-14 13:55:39 · 466 阅读 · 0 评论 -
关于androidstudio创建新项目之后
安装svn1.7以上之后创建新项目先share,1.8format在import 在本地文件夹中找到项目,import into subvion最后cleanup project,create new_project.patch,可以提交ignored 文件包括build文件加,.gradle,.idea,*iml其他忽略看项目需求...原创 2016-04-19 16:01:46 · 505 阅读 · 0 评论 -
Android Studio提示端口号5037被占用
办法一:重启模拟器.还是不行,就连同模拟器和开发工具一起重启否则就检查是否有类似,360手机助手之类的手机关机管家,有就关闭管家再重启,办法二:运行->cmd 打开命令行窗口输入:netstat -aon|findstr "5037"找到占用端口号的pid:3600如:C:\Users\Administrator>netstat -aon|f...原创 2017-02-13 11:09:21 · 3091 阅读 · 0 评论 -
genymotion无法联网解决办法
1,打开Oracle VM VirtualBox 2,找到对应的模拟器,点击选择,并打开设置3,找到网络选项,选择网卡二4,在连接方式那里选择 网络地址转换(nat)5,关闭,重启模拟器即可,打开浏览器,找到baidu...原创 2017-02-13 11:39:34 · 1194 阅读 · 0 评论 -
翻译一个水平画廊选择器:FancyCoverFlow
水平滚动器的实现思路:Gallery--画廊效果,,滚动带选择,支持自带滑动监听继承自gallery父类,自定义特效设置选中和未选中的透明度,除了滑动偏快,其他没什么大问题构造方法,初始化参数,camera 反射比camera的设定,三维角度转化获得从xml文件设置的自定义属性所有参数的get和set方法设置适配器 Spinner的适配器重写了父类的展示子视图的方法静态...原创 2017-02-17 15:15:52 · 682 阅读 · 0 评论 -
翻译一个图片选择器:ImageSwitcher
-------------------viewAnimator--------------ViewAnimator继承自framelayout,构造函数初始化动画参数方法showonly 设置显示子view,子view获得,,循环出所有的子view,,两个条件可以显示动画,并且有动画对象,并且显示viewelse可以显示动画,并且有动画对象,并且子view是显示的方式,启动动画...原创 2017-02-17 17:51:52 · 415 阅读 · 0 评论 -
高德地图poi查询附近的建筑,poi文档很长,照着关键词来吧
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import com.amap.api.services.core.LatLonPoint;import com.amap.api.services.core.PoiItem;import com...原创 2017-05-08 11:42:44 · 2313 阅读 · 0 评论 -
用MediaRecorder录制视频太短崩的问题
http://www.cnblogs.com/over140/p/3811084.html具体表现:调用MediaRecorder的start()与stop()间隔不能小于1秒(有时候大于1秒也崩),否则必崩。错误信息:java.lang.RuntimeException:stopfailed.at android.media.MediaRecor...转载 2016-03-14 17:47:27 · 676 阅读 · 0 评论 -
关于录制不清晰,对焦的问题
camera = Camera.open();if (camera != null){ Camera.Parameters params = camera.getParameters(); camera.setDisplayOrientation(90); List<String> list = params.getSupportedFocusModes()...原创 2016-03-14 17:57:17 · 725 阅读 · 0 评论 -
java基础都不知道,android入门看了也白看
为什么要以这个开篇呢?因为java语法是整个android开发的基石, android是java的封装框架,用来在android系统上安装运行,我们首先要了解java的语法结构才能撬开android的大门!一,javaJava是一门面向对象编程语言 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 Java具...原创 2019-09-04 19:56:49 · 866 阅读 · 0 评论 -
常用组件:android的图片组件ImageView
讲完文本显示,想让内容更丰富多彩,图片是必不可少的元素,好看的图片会为整个应用添上色彩。android对图片的封装非常完善,仅仅需要几行代码就能有非常丰富的图片展示,api赶快学起来! 一,基本写法,示例代码<ImageView android:id="@+id/iv_shadowImage_ta...原创 2019-09-09 15:40:34 · 2823 阅读 · 0 评论 -
常用组件:android的文本Textview
讲完常用布局,单纯放点背景颜色绝对不是咱们的目标,更丰富的内容表现才是咱们就需要的,到了这时候,我们首先想到的就是文本内容如何显示,android专门提供了一个组件来解决这个问题,就是TextView,让我们一起来学习它吧! 一、关于TextView,最常用的核心api就是下面两个:android:text设置显示文本.andr...原创 2019-09-09 10:56:18 · 820 阅读 · 0 评论 -
第一只脚进门:Android常用的布局学习
这次是说明常用布局(Linearlayout RelativeLayout FrameLayout ConstraintLayout)没有特殊要求的话,这些布局已经能满足绝大部分要求了,当然有特殊要求咱也能解决,技术是一步一步提升的,不要着急哈。 LinearLayout(线性布局)绝对好用,子view排列省心省力,权重适配屏幕的常客,反正是个好东西...原创 2019-09-07 17:40:44 · 676 阅读 · 0 评论