Android

Android开发实现简单计算器功能

2021-06-15
计算器项目,要求实现加.减.乘.除.求倒数.求平方根等简单运算. 真机调试结果如下图: 布局文件:main_activity.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pare

Android基于OpenCV实现图像修复

2021-06-15
目录 API 操作 图像修复 实际应用中,图像常常容易受损,如存在污渍的镜头.旧照片的划痕.人为的涂画(比如马赛克),亦或是图像本身的损坏.将受到损坏的图像尽可能还原成原来的模样的技术,称之为图像修复.所谓修复,就代表图像大部分内容是完好的,所以,图像修复的原理,就是用完好的部分去推断受损部分的信息,特别是完好部分与受损部分的交界处,即受损区域的边缘,在这个推断过程中尤为重要. OpenCV给我们提供了inpaint方法来实现这个功能,并提供了两种图像修复的算法: 基于Navier-Stokes

Android ViewPager小圆点指示器

2021-06-15
一个很常用的功能,一个ViewPager会自动滚动,并且有一排小圆点黑和白来指示当前的滚动进度 首先写一个ViewPager的适配器,这里这个适配器为了方便里面的元素全都是ImageView import android.content.Context; import android.os.Handler; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import a

android 仿微信demo——微信通讯录界面功能实现(移动端,服务端)

2021-06-15
目录 移动端微信通讯录界面功能实现 服务端微信通讯录界面功能实现 测试 总结 前面我们实现了微信消息界面的实现,这篇继续完善微信功能,实现微信通讯录界面 移动端微信通讯录界面功能实现 微信通讯录,头部是四个标签(不进行分组),下面是好友信息且根据呢称首字母进行排序分组,底部还统计了好友个数,右边是一组英文字母导航,可滑动并且还可以点击跳转到相应的分组 微信好友和顶部的四个标签,可以用ListViw实现并指定一个item布局,分组效果只需要在代码段进行判断即可 右边的字母操作行可以自定义一个组件继

Flutter app页面路由以及路由拦截的实现

2021-06-15
为什么要使用路由 在之前我们的代码中,页面跳转使用的代码如下所示: Navigator.of(context).push( MaterialPageRoute(builder: (context) => LoginPage()), ); 在开发过程中,随着页面的增加,如果继续使用这种方式会有如下缺陷: 代码耦合严重:涉及到页面跳转的地方就需要插入页面的构造函数,意味着需要知道其他页面的构建方式. 不易维护:一旦某个页面发生了变化,需要将涉及到该页面的跳转全部改变. 权限控制不方便:假设某些页面需

Android字体相关知识总结

2021-06-14
目录 一.Android 默认字体介绍 1.Android 系统默认使用的是一款叫做 Roboto 的字体,这也是 Google 推荐使用的一款字体 传送门.它提供了多种字体形式的选择,例如:粗体,斜体等等. 2.在 Android 中,我们一般会直接或间接的通过 TextView 控件去承载字体的显示,因为关于 Android 提供的承载字体显示的控件都会直接或间接继承 TextView,例如:EditText,Button 等等,下面给出一张 TextView 继承图: 3.TextView

Android抽屉布局DrawerLayout的简单使用

2021-06-14
本文实例为大家分享了Android抽屉布局DrawerLayout的基本使用,供大家参考,具体内容如下 本次Demo的目录结构如下(图中红框即为所用文件): 创建好一个普通的Android项目后,在activity_main.xml中放入如下代码: <?xml version="1.0" encoding="utf-8"?> <android.support.v4.widget.DrawerLayout xmlns:android="ht

Android实现下载进度条效果

2021-06-14
目录 最终效果和对比vivo商店效果 分析1 - 计算进度 分析2 - 绘制圆角矩形 解决方案 分析3 - 绘制文字和交汇 手势拓展 最终效果和对比vivo商店效果 vivo应用商店下载效果: 最终实现效果: 分析1 - 计算进度 进度计算就比较简单了,我们通过复写onSizeChanged()方法,获取到控件的宽后,先计算当前进度百分比,再将百分比乘以宽度,就可以得到应该绘制的宽度了. 绘制圆角矩形需要传一个Rect,Rect的构造方法需要传4个位置,分别是left.top.right.bot

android 仿微信demo——微信消息界面实现(服务端)

2021-06-14
目录 服务端微信消息页实现 测试 总结 上一篇实现了移动端微信消息界面功能,以此为基础继续完善服务端功能 服务端微信消息页实现 微信消息界面的实现,和登录,注册是类似的,无非就是接受客户端数据,然后通过这个数据去数据库查找,如果查得到话,返回相应值给客户端. 在移动端中,当用户输入表单后点击登陆,如果登陆成功,则会把微信号通过Itent传给主界面activity,而在微信主界面点击微信消息界面时,会把微信号作为fragment的参数传给微信消息界面,然后通过把微信号数据发送给服务器,服务器接受到

Android socket如何实现文件列表动态访问

2021-06-14
目录 idea服务端更新 idea服务端更新 为了防止代码量上升可能带来的结构杂乱,我们对服务端架构进行优化,server包负责socket服务基础实现,data包负责处理各种安卓端的命令. 将readSocketMsg,writeBackMsg方法单独拿出,创建一个SocketMsg方法类,专门负责数据流的读取与写入. SocketMsg.java package lrz.server; import java.io.*; import java.net.Socket; import java

Flutter开发中的路由参数处理

2021-06-14
目录 Navigator 的 push 和 pop方法 Navigator 导航器的 push 和 pop 方法可以携带参数在页面间传递,其他变形的方法也一样.pushNamed 方法原型如下: Future<T?> pushNamed<T extends Object?>( String routeName, { Object? arguments, }) { return push<T>(_routeNamed<T>(routeName, argumen

Android自定义圆点指示器

2021-06-13
本文实例为大家分享了Android自定义圆点指示器的具体代码,供大家参考,具体内容如下 先上效果图 大概思路就是自定义View 从左至右绘制圆点 然后在ViewPager的OnPageChangeListener中设置当前页面的圆点 下面是代码 先定义属性 <resources> <attr name="selectedColor" format="color"/> <attr name="unselectedColor&qu

Android实现引导页的圆点指示器

2021-06-13
在App引导界面通常有引导界面提示小圆点,我们使用一个集成的类 来整体封装实现: 使用的方法: 首先在 XML布局中引入这个自定义的控件: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&quo

Android实现横屏切换科学计算器

2021-06-10
本文实例为大家分享了Android实现横屏切换科学计算器的具体代码,供大家参考,具体内容如下 简单计算器设计,实现以下功能: 1.竖屏时能实现基本的加减乘除运算.回退和清空输入. 2.横屏时变为科学计算器,实现函数计算.进制换算等功能.输入计算公式,按等号键输出计算结果. 3.公式输入和结果显示区支持长按弹出复制.粘贴功能. 4.使用计算器过程中应不弹出软键盘. 5.可以通过进度条实时调整计算结果保留的小数点后位数,或者通过音量键完成同样的效果. 6.实现附加功能:三角函数.阶乘.XY.八进制转

android9.0 默认apk权限添加方法

2021-06-09
1.默认赋予全部权限: 安卓动态要求用户允许添加权限,直接将如下代码中的final boolean grantPermissions = (args.installFlags & PackageManager.INSTALL_GRANT_RUNTIME_PERMISSIONS) != 0;改为final boolean grantPermissions=true便可. 文件路径:framework\base\services\core\java\com\android\server\pm\Pac

关于androidstuio导入系统源码的问题

2021-06-09
最近公司需要做一些将系统源码导出来,然后加入一些功能,在导入androidstudio过程中遇到过一些问题,这里记录下,方便以后需要. 一般导入成功的都是系统比较相对独立的app,比如计算器.Schedule power on off等,网上查阅一些资料后,最终解决. 这里以Schedule power on off为例. 1.导出Schedule power on off源码,路径为/package/apps/ 如图: 新建androidstudio项目,导入相关代码以及相关资源文件,rebu

详解App保活技术实现

2021-06-08
前言 通过ioctl跟binder驱动交互,实现以最快的方式唤醒新的保活服务,最大程度防止保活失败.同时,我也将跟您分享,我是怎么做到在不甚了解binder的情况下,快速实现ioctl binder这种高级操作. 声明:现在这个保活方式在MIUI等定制Android系统中已经不能保活,大部分时候只能活在模拟器中了.但对与我们的轻量定制的Android系统,一些系统级应用的保活,这个方案还是有用的. 这是一个Android设计的不合理的地方,路子可以堵,但还是有必要留一个统一的保活接口的.这个接口

详解App保活实现原理

2021-06-08
概述 早期的 Android 系统不完善,导致 App 侧有很多空子可以钻,因此它们有着有着各种各样的姿势进行保活.譬如说在 Android 5.0 以前,App 内部通过 native 方式 fork 出来的进程是不受系统管控的,系统在杀 App 进程的时候,只会去杀 App 启动的 Java 进程:因此诞生了一大批"毒瘤",他们通过 fork native 进程,在 App 的 Java 进程被杀死的时候通过am命令拉起自己从而实现永生.那时候的 Android 可谓是魑魅横行,群

浅谈Android截屏和指定View生成截图

2021-06-08
当前页面截图(截取整个屏幕) 截取当前Activity页面的截图,可以通过窗体最底层的decorView进行缓存,然后根据这个缓存对象生成一张图片.有的需要不需要状态栏,也可以指定生成图片的宽高,把状态栏去除. /** * 截取当前窗体的截图,根据[isShowStatusBar]判断是否包含当前窗体的状态栏 * 原理是获取当前窗体decorView的缓存生成图片 */ fun captureWindow(activity: Activity, isShowStatusBar: Boolean)

浅谈Android中AsyncTask的工作原理

2021-06-07
概述 实际上,AsyncTask内部是封装了Thread和Handler.虽然AsyncTask很方便的执行后台任务,以及在主线程上更新UI,但是,AsyncTask并不合适进行特别耗时的后台操作,对于特别耗时的任务,个人还是建议使用线程池.好了,话不多说了,我们先看看AsyncTask的简单用法吧. AsyncTask使用方法 AsyncTask是一个抽象的泛型类.简单的介绍一下它的使用方式代码如下: package com.example.huangjialin.myapplication;