- 博客(45)
- 资源 (1)
- 收藏
- 关注
原创 Android 截屏服务
package com.xxxx.xxxx.xxxx.xxxx.xxxx;import android.annotation.SuppressLint;import android.app.Notification;import android.app.NotificationChannel;import android.app.NotificationManager;import android.app.Service;import android.content.Context;imp.
2021-06-15 14:01:20
658
5
原创 Flutter和原生交互---StreamController.broadcast
上一篇文章说道通过EventChannel使得Flutter监听Android原生的信息流变化,这种EventChannel需要我们在MainActivity中手动注册插件通过StreamController.broadcast可以不用在MainActivity中手动注册插件(如果是在编写一个插件的话),而是通过真正的插件形式使得Flutter具有监听Android原生的能力1.Flutter插件代码:注册并声明StreamController对象,并实现MethodChannel的setMetho
2021-05-26 15:46:08
957
1
原创 Flutter和原生交互---EventChannel
EventChannel,用于Android原生事件流向Flutter端的发送,例如通过原生监听重力感应等状态变化后向Flutter发送通知,一对多通知,类似于原生广播原生端实现代码:1.实现EventChannel:单例类,通过sendEventData通知Flutterpackage com.example.flutter_event_channel_plugin;import android.util.Log;import androidx.annotation.NonNull;
2021-05-26 15:16:42
2856
1
原创 Flutter自定义CustomPainter中获取ImageShader参数ui.Image对象的方法
ImageShader需要传入dart:ui包里的Image对象,ui.Image需要异步请求获取: Future<ui.Image> loadImage() async { ByteData byteData = await rootBundle.load('assets/images/target_image.jpg'); ui.Codec codec = await ui.instantiateImageCodec(byteData.buffer.a
2021-05-21 15:58:40
762
1
原创 沉浸式状态栏,状态栏调色
工具类import android.app.Activity;import android.graphics.Color;import android.os.Build;import android.view.View;import android.view.Window;import android.view.WindowManager;public class StatusBar { /** * 6.0以上的沉浸式布局 * 6.0以上才可以修改字体颜色
2021-04-13 16:07:44
242
原创 EditText添加@功能
用ImageSpan做@别人的标签: ImageSpan imageSpan = new ImageSpan(mView.getContext(), imgBitmap); CharSequence source = "[at]" + replyData.getName() + "/" + replyData.getOpenid() + "[/at]"; SpannableString spannableSt
2020-11-19 11:03:43
281
原创 Flutter命名路由食用指北
Flutter - 命名路由配置欢迎使用Markdown编辑器新的改变生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入配置需要在main.dart文件的第一个MaterialApp中配置命名路由信息:import 'package:iting/constant/route_config.dart';import 'pac
2020-07-15 09:22:58
293
原创 RecycleView与ListView的区别以及RecycleView缓存机制总结
RV和LV的区别LV:继承并重写BaseAdapter类,布局效果单一自定义ViewHolder和convertView的复用优化可以通过addHeaderView()和addFooterView()添加下拉刷新的头部view与上拉加载更多的底部view,且不会影响Adapter的编写在刷新条目数据时通常使用notifyDataSetChanged()方法这种刷新数据是全局刷新的方式,...
2020-01-10 17:54:14
303
原创 Android8.0消息通知适配与点击事件从入门到放弃
文章默认大家会创建消息通知消息通知在Android 8.0以上(targetSdkVersion大于等于26)的设备中,添加了NotificationChannel(通知渠道)的概念,每个消息通知必须依附于通知渠道过期了NotificationCompat.Builder(Context context) 方法,统一使用NotificationCompat.Builder(Context ...
2020-01-08 18:19:16
436
原创 友盟分享到微信 报错【2003】请检查应用签名或Appkey
环境:Android开发首先需要在微信平台申请app的AppKey和AppID,才能继续操作 签名问题:有些应用的开发者把Manifest文件中的包名 package="com.xxx.xxx" 和gradle.build中的applicationId android { compileSdkVersion 28 defaultConfig { ...
2018-09-18 09:50:23
4198
原创 动态获取控件的宽度
以获取RecycleView的宽度举例:/** * 获取列表的最大自适应宽度 * * @return int */ public int getWarpContentWidth() { int spec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIF...
2018-08-01 13:59:29
342
原创 使用bintray-release发布项目到jcenter bintray | 新的解决javadoc编码错误的方法
一、注册jcenter bintray账号1.进入官网:https://bintray.com/2.点击注册个人账户点击这里才是注册个人账户。如果注册页面的选项大于五个,那就是注册错了。注册时,QQ啊,163什么的邮箱啊都不行,Google或者Outlook才可以注册。3.创建一个maven仓库依次点击(1)(2)创建一个maven仓库(3)配置一下属性(4)创建完成就长这样,然后点击这个自己创建...
2018-03-02 15:08:13
2190
原创 SpringView------刷新控件
SpringView是一个可以上拉加载更多下滑加载最新制定加载动画的控件比官方的SwipeRefreshLayout更丰富这里是作者的github传送门作者的CSDN博客结束刷新调用控件的这个方法:onFinishFreshAndLoad()
2017-09-29 17:00:37
522
原创 6.0运行时权限
运行时权限是在6.0之后引用的,起到的作用是什么呐?就是一些软件会申请很多很多的权限,但是有很多权限在这个软件上也用不到,但是你又不得不同意,否则只能选择不安装。但是有了运行时权限,用户在安装软件的时候,不需要一次性的授权所有的权限,而是在使用过程中再对某一项权限进行申请。例如一个美图软件需要申请访问短信和彩信的权限,这样即使我们拒绝通过这个权限,我们还是可以继续使用这个软件,而不像之前那样直接无
2017-02-22 16:22:34
1130
原创 一些有用的-------小工具
获取系统时间:方法1:import java.text.SimpleDateFormat;import java.util.Date; SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss"); Date curDate = new Da
2017-02-22 11:23:25
2447
2
原创 LitePal---Android数据库框架
一。配置LitePal在Github上搜索这个开源项目,找到在gradle中添加的语句compile 'org.litepal.android:core:1.4.1'1.4.1是我现在的最新版本。添加后需要配置litepal.xml:在src/main目录下创建一个assets目录,在此目录下创建一个litepal.xml文件,对此文件进行编辑。
2017-02-22 11:20:21
491
原创 git笔记
1.添加用户名和email地址命令:git config --global user.name "xxx"git config --global user.email "xxx@xxx.com"2.添加本地仓库在目标目录下右击鼠标选择Git Bash Here或者 cd 查找目标文件夹 命令:cd f:(盘)
2017-02-20 15:46:56
263
原创 stringBuilder的使用
String在每次修改时,会创建一个新的对象。在大量操作时,会占用太多资源。而StringBuilder和StringBuffer不会,这两个只有在toString时才会创建对象。但是StringBuilder和StringBuffer不同,前者是非线程安全的,后者是线程安全的。在对字符串操作频繁的情况下,不建议用 “+” 来对字符串拼接,而是用StringBuilder和String
2017-02-10 16:01:51
389
原创 AsyncTask异步任务
android中实现异步机制的方法有两种,Handler和AsyncTask。Handler在使用时,需要新开辟一个线程,在任务完成以后,通过sendmessage()等方法通知UI线程进行界面更新。相比起Handler,AsyncTask显得更加简单,内部封装了线程池、线程和Handler。我们通常是继承AsyncTask并重写其中的方法:public abstract cla...
2017-02-04 10:50:58
322
原创 AlertDialog详解
AlertDialog,对话框,用于给用户提示信息或者做出一些选择,同时它也是其他Dialog的的父类:比如ProgressDialog,TimePickerDialog等。AlertDialog的父类是:Dialog。AlertDialog在使用时并不能像其他的控件一样,例如Toast和Notification,这些控件是new出来的,但是AlertDialog不能通过new来使用,而是
2017-02-03 16:22:36
465
原创 可折叠的listview
ExpandableListView,也就是今天的主题了,可以折叠的listview下面送上google源码传送门使用ExpandableListView的步骤:1.在布局文件中定义一个ExpandableListView,并指定id <ExpandableListView android:id="@+id/exlist_test" andro
2017-02-03 11:11:25
699
原创 button的StateListDrawable
首先是button点击时候的变色,用包裹,设置点击状态属性其次是实现圆角,渐变色等有很多属性drawable:引用的Drawable位图,我们可以把他放到最前面,就表示组件的正常状态~state_focused:是否获得焦点state_window_focused:是否获得窗口焦点state_enabled:控件是否可用state_checkable:控件可
2017-01-20 16:53:33
324
原创 自定义控件要用到的知识
1.Color(颜色)类 Android系统中颜色的常用表示方法有以下3种: (1)int color = Color.BLUE; (2)int color = Color.argb(150,200,0,100); (3)在xml文件中定义颜色; 在实际应用当中,我们常用的颜色有以下一些,其颜色常量及其表示的颜色如下所示: Color.BLACK 黑色
2017-01-11 11:01:55
260
原创 Okhttp实践
首先在使用之前需要把okhttp加入到项目中,在github上搜索Okhttp即可。下面附上传送门:https://github.com/square/okhttpcompile 'com.squareup.okhttp3:okhttp:3.5.0'添加在项目的Gradle中,点击同步即可。1.Git请求:Okhttp的基本git请求分为四步:声明OkhttpCli
2017-01-09 15:09:34
558
原创 ViewFlipper实践
类似于viewpager,但是没有手势滑动,更适合做轮播图(不能点的那种)。在布局中定义: <ViewFlipper android:id="@+id/flipper" android:layout_width="match_parent" android:layout_height="match_parent"> 在程序
2017-01-05 15:44:58
290
原创 Progress实践
Progress有两个进度,一个是android:progress,另一个是android:secondaryProgress,后者主要是和缓存之类的相关,前者是为了当前进度相关。ProgressBar分为确定的和不确定的,上面说的播放进度、缓存等就是确定的。相反地,不确定的就是不清楚、不确定一个操作需要多长时间来完成,这个时候就需要用的不确定的ProgressBar了。这个是由属性andro
2017-01-05 10:31:01
354
原创 Android AA框架
AndroidAnnotations配置:https://github.com/androidannotations/androidannotations/wiki/Configuration在当前gradle中配置并下载在使用的时候,需要在AndroidManifest.xml中对每个activity或者servic的名字后面加一个 _ ,不然会找不到id。@EAct
2017-01-03 16:26:38
1146
原创 我的H5——01
H5由元素(element)、属性(attribute)和值(value)组成。元素: 经典型: amazed 空元素: 空元素(如这里显示的 img元素)并不包含任何文本内容(alt属性中的文字是元素的一部分,并非显示在网页中的内容) 。空元素只有一个标签,同时作为元素的开始标签和束标签使用。结尾处的空格和
2016-12-26 15:21:31
430
原创 TextView 大全
字符串资源里变量替换Android开发中是拒绝硬编码的,我们可能会把一些字符串放在xml中当作资源使用,假设有如下情况:你好A,欢迎使用我们的App。我们在程序中需要使用这个字符串,但是A是一个变量,很常规的办法是取出这个字符串,然后用String的replace方法把A替换成用户的昵称。其实,在android中有这样一个东西,那就是 XLIFF,全称叫 XML 本地化数据交换格式
2016-12-09 16:38:40
353
原创 CoordinatorLayout和Toolbar的学习
1 ToobarToobar主要是用来替换ActionBar的,换句话说,ActionBar能做的,Toolbar都能做。如果你对ActionBar的使用比较熟悉,你会发现Toolbar使用起来非常简单。ok,既然是替换,当然用Toolbar的时候就得先去把ActionBar给隐藏掉啦隐藏ActionBar的方法有很多,可以通过代码的方式隐藏,也可以通过配置文件的方式,我们主要是
2016-12-07 15:51:36
328
原创 Android Notification 食用指北
本文用的是import android.support.v4.app.NotificationCompat;下面的Notification.Notification,是一种具有全局效果的通知,可以在系统的通知栏中显示。当 APP 向系统发出通知时,它将先以图标的形式显示在通知栏中。用户可以下拉通知栏查看通知的详细信息。通知栏和抽屉式通知栏均是由系统控制,用户可以随时查看。通
2016-12-01 14:36:58
476
原创 Okhttp3食用初级指北
package com.quaie.wms.myhttpdiscuss;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.widget.Button;impor
2016-12-01 10:39:54
349
原创 RecyclerView食用教程
RecyclerView的基本食用教程:1.三种基本布局分别在:LinearActivity,GridActivity和StaggeredGridActivity2.Adapter的设置3.点击事件4.分割线的设置DividerItemDecoration和DividerGridItemDecoration/** * 主Acticity */public cl
2016-11-30 15:09:09
388
原创 在ListView中动态添加EditText并对其中的数据进行保存和由于复用引起的Editext中的内容显示异常的解决方案
问题 1:保存item中EditText中的数据。解决方法:这需要用到Map进行保存,如果用arraylist的话,在同一个item中的EditText修改数据,导致重复添加。需要在其上注册OnTextChangedListener监听事件,并在afterTextChanged()中写入存储操作。问题 2:EditText存在焦点问题,由于复用的存在,会出现焦点落在多个EditTe
2016-11-29 16:46:10
933
原创 判断Activity,Service是否正在运行
Activity是否正在运行也就是Activity是否可见:public static boolean isActivityRunning(Context mContext,String activityClassName){ ActivityManager activityManager = (ActivityManager) mContext.getSystemS
2016-11-24 09:47:45
479
原创 动态添加控件
//指定一个容器放控件(添加单个控件也可以不指定容器)LinearLayout mainLinear = (LinearLayout) view.findViewById(R.id.item_wms_lr);mainLinear.removeAllViews();//声明要动态添加的控件TextView waveNum = new TextView(this);waveNum.setPaddin
2016-11-22 15:33:48
291
转载 软键盘弹出后,Activity变形,popupWindow遮盖住
"adjustUnspecified" It is unspecified whether the activity's main window resizes to make room for the soft keyboard, or whether the contents of the window pan to make the current focus v
2016-11-18 13:55:17
1207
原创 android:windowSoftInputMode 软键盘属性使用
在AndroidManifest.xml文件中的android:windowSoftInputMode属性使用 The AndroidManifest.xml File "stateUnchanged", "stateHidden", "st
2016-11-18 13:46:45
280
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人