- 博客(43)
- 收藏
- 关注
原创 Android12 车机开发,隐藏系统状态栏和Dock栏
在某处启动该service就OK了,其中layoutParams.type = 2036;这个会提高层级,让其实现全屏,但是车机开发window的层级如果framework有定制化的,就需要问下framework的队友,让他们给个window的层级就OK了。有个需求是隐藏状态栏和Dock栏,且下滑手势的时候,状态栏和Dock栏显示出来。通过service,使用WindowManager添加view,设置属性层级,实现霸屏!2.完全隐藏状态栏和Dock,不会响应下滑事件的影响。
2023-06-15 13:49:34 2201
原创 Android12 车载开发TaskView实现分屏
这里只给出TaskView的代码,相关联的源码,请看源码,如果想要使用TaskView需要自己去编译frameWork的源码,打包一个aar,或者jar出来使用,否则无法直接使用。1.如果分屏的应用如启动两个应用按照权重占比,互相不叠加在一起,点触摸击事件都可响应,例如左边启动QQ了,右边启动的是微信,二者窗口都可操作。TaskView是谷歌整合安卓多任务多窗口下交互重新重构的独立出来的module,本身继承自ServiceView,TaskView的相关概念性的东西参考。//创建的taskview。
2023-06-12 11:34:34 5021 9
原创 Android 加载Unity 3D后适配深色浅色遇到的坑
在做项目的时候,遇到一个很奇葩的问题,Activity的onConfigChanged()方法不走,这样深色浅色切换的时候,就不会适配到当前的view,有人说可以在资源文件适配好颜色或者背景的图片,但是咧,我加载的Unity的资源,需要给Unity 3d发出适配的通信。我看的android 12的源码,找到UIModeManagerService这个类,里面初始化的时候有注册系统深色浅色的信号。3.看到源码有注册深色浅色的监听,这个时候CV大法就起到作用了,试试呗,说不定中奖了咧。
2022-08-24 14:48:29 350
原创 继承AppCompatActivity的setContentView(R.layout.activity_main)内部流程
之前上一篇的写了继承Activity的setContentView(R.layout.activity_main)的过程,其实继承AppCompatActivity大体上是一样的流程,只是多出几个新的类:AppCompatDelegate 它的实现类AppCompatDelegateImpl拿到Window和PhoneWindow,DecorView,走一下AppCompatDelegateImpl.setContentView(View v)他的里面走了ensureSubDecor()这个方法又会走
2020-07-04 16:12:03 609
原创 View的绘制流程
面试中必问的问题说一下View的绘制流程,有时候说着总是说着忘记了,然后告知面试官有的我忘记了,面试官不计较也就过去了,但是要说的大概清楚,今晚总结一下,画个个图,然后分析Activity的布局绘制。 先上图吧:接下来我们进入继承Activity的类中:看到setContentView()的方法中(注意:继承AppCompatActivity的setContentView()方法里面的实现是有区别的,后续我会继续总结出AppCompatActivity的绘制)看下代码: getWi...
2020-06-25 23:01:13 238
原创 Android 使用rabbitmq实现点对点的推送
在实际项目中,客户的推送通知不需要类似极光推送或者友盟的推送,后端人员实现了通过mq实现点对点的推送通知。作为移动端的,实现起来还是很简单的。 1. 首先依赖:implementation 'com.rabbitmq:amqp-client:4.1.0' 2.在需要接收通知的地方: //这是一些配置信息:private void setupConnectionFactory() { try { factory=new Conne...
2020-06-02 09:36:01 1078
原创 Android 组件化开发搭建
模块化的开发流程 首先我们建立一个主App,主app用来控制触发进入各个模块的入口,只是一个外壳,所有的逻辑在各个模块组件内部开发,各个模块以及外壳的app通信是采用阿里的路由框架进行的,稍后我会搭建一个可以各个模块的配置,以及运行环境。大家直接实战进行吧,在网上搜索一堆的模块化开发博客,倒不如自己亲自实践一下,原理都是一样,实践出真知吧。 首先我的AS是3...
2020-04-05 14:31:41 523
原创 Kotlin学习笔记五
函数的基本用法一. 申明方式 1. 这里我们举例java中的onCreate()方法: eg: override fun onCreate(savedInstanceState:Bunndle?){} ...
2019-06-02 16:10:55 176
原创 Kotlin学习笔记四
控制语句1.条件分支简单分支首先“if……else……"的条件使用规则和java中的用法是一样的。我们在Kotlin中给某个文本赋值的时候可以直接用该语句进行赋值eg: tv.text = if(is_odd==true)"正确情况下的赋值是正值1"e...
2019-05-25 16:10:34 558
原创 Kotlin学习笔记三
一. 字符串字符串转换目录 Kotlin的转换方式 java的转换方式 字符串转整形 toInt Integer.parseInt(字符串变量) 字符串转长整形 toLong Long.parseLong(字符串变量) 字符串转浮点数 toFloat Float.parseFloat(字符串变量) 字符串转双精度 toDou...
2019-05-18 11:36:05 292
原创 Kotlin学习笔记二
上一章,我们只是完成最简单的工程,这一章,我们开始来学习其语法了一 . Kotlin和Java的基本数据类型比较基本数据类型名称 Kotlin Java 整型 Int int和Integer 长整型 Long long和Long 浮点型 Float float和Float 双精度 Double double和Dou...
2019-05-17 23:52:30 219
原创 Kotlin学习笔记一
当下谷歌将Android的开发语言由java转变为Kotlin语言,当然在国内两三年的时间内应该是没什么大的影响,但是随着以后的迁移,肯定还是慢慢的转到Kotlin 上,每周抽点时间学习一下并不是坏事,大家还是慢慢的适应市场吧。现在开干起来。 当前的AS版本3.4默认支持Kotlin的,你不在需要繁琐的kotlin环境的配置了,直接干。 首先,我们任何开发语言都是建一个...
2019-05-17 22:41:05 159
原创 Android 带横线的验证码输入框
1.自定义一个控件,继承RelativeLayoutpublic class VerifyCodeView extends RelativeLayout { private EditText editText; private TextView[] textViews; private static int MAX = 6; priv...
2019-04-21 13:27:03 4234 2
原创 本地sp保存搜索记录,并且去重的,读取,删除记录的工具类
public class HistoryData { private final static String PREFERENCE_NAME = "superservice_ly"; private final static String SEARCH_HISTORY="linya_history"; // 保存搜索记录 public static void s...
2019-04-02 15:52:10 653
原创 软件盘弹出底部的View上顶
1.复制这段代码在onCreate中,或者在自己需要的地方View decorView = getWindow().getDecorView();View contentView = findViewById(Window.ID_ANDROID_CONTENT);decorView.getViewTreeObserver().addOnGlobalLayoutListener(getGl...
2019-04-02 15:49:30 184
原创 设计模式 ----------代理模式
代理模式分为静态代理和动态代理,个人认为是有个中间人做事情,就像现实中的人代理商一样,有人生产产品,有人专门代理去卖场品一样的。简单的说一下水浒中的西门庆的代理人 王婆,王婆是个中间体,负责代理潘金莲和西门庆的任务,好了,接下来撸代码:1.首先我们定义一个接口public interface KingWomen { //这种类型的女人能做什么事情呢? public v...
2019-01-24 20:30:01 147
原创 设计模式 ---------- 观察者模式
观察者模式在Android 中的应用还是很广泛的,类似EventBus,RxJava等,我们自己设计观察者者模式的时候要创建观察者和被观察者,而Java提供者了 Observable类和Observer接口,这样我们可以方便的去实现观察者模式。我们也可以自定义的的去模拟观察者模式,不适用Java提供的类。当然为了节省时间,我就直接使用提供类。 1.首先我们去创建一个被观察者(韩非子被李思监...
2019-01-24 00:44:50 126
原创 设计模式--------策略模式
安卓开发过程中,我们会利用一些设计模式,常见的是单例的设计模式,今天当然不是说单例的设计模式,现在我们谈的是策略模式,好了,现在看流程图: 1. 首先我们定义一个接口:public interface IStrategy { public void operate();}2.实现这个接口:public class GivenGreenLight imp...
2019-01-21 21:09:30 133
原创 Android RxJava的初次使用
早就听说RxJava很牛X ,也一直想去研究一下,买了一些大佬的书,介绍了一下RxJava的基本操作,但是奈何作为小白,理解能力有限只能自己边敲边领会喽,先学会使用,再去了解源码,是我的学习方法之一。看的再多,敲不出代码的都是扯淡。好了,不扯犊子了,开始撸一把吧!一 . 首先,我们要差不多了解观察者模式吧,自己不理解的去看看EventBus的源码,大概就能搞得清楚。然后我们开始...
2018-11-29 17:51:46 153
原创 Android Toolbar,ViewPager,TabLayout,联合使用可以滑动的栏目
1.第一次联合使用Toolbar,ViewPager,TabLayout的时候,作为小白,卧槽,不会啊,这是什么鬼啊,看别人的博客复制粘贴啊,哎,走在CV的路上无法自拔啊,一句话,先入行的小白们都是要自己多敲代码,多练习。好了,不废话,上代码,最简单的形式最直白的简短的实现这个过程吧首先布局是这样子的<?xml version="1.0" encoding="utf-8"?...
2018-11-14 21:21:24 850
原创 Android Material Design FloatingActionButton的使用
这一行代码就可以让他显示了<android.support.design.widget.FloatingActionButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="20dp" andro...
2018-11-13 20:59:02 131
原创 Android Material Design
一.最近写好久没有写编辑栏,都忘记了属性了,写下来下次能直接看 二.现在简单的布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:...
2018-11-13 20:46:54 202
原创 各种对话框的设置
1.首先主页布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:to...
2018-11-12 21:38:36 281
原创 自定义渐变文字
自定义渐变文字当然要继承TextView了,撸完直接在资源文件中引用就OK了。public class GradientTextView extends android.support.v7.widget.AppCompatTextView { private int width; /** 移动距离*/ private int translateWidth; ...
2018-10-18 14:27:09 311
原创 运行时动态权限申请
简单明了,拿来就可以用,兄die,你指的拥有public class BaseActivity extends AppCompatActivity { private final int mRequestCode = 1024; private RequestPermissionCallBack mRe...
2018-10-12 16:14:48 285
原创 Android Studio 黄油刀的最新使用方法
1.首先将module的删除apply plugin: 'android-apt'2.将之前的dependencies的依赖换成implementation 'com.jakewharton:butterknife:8.6.0'annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'3. 在AS的插件设置...
2018-09-17 22:25:51 1561
原创 状态栏
public static void initStatusBar(Activity context, boolean isTint, boolean isDark, boolean isTransparent) { if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { return; } ...
2018-09-16 16:42:09 113
原创 使用Gzip进行简单压缩操作
public class GZIPcompress{ public static void main(string[] args ){ throws IOExecption if (args.length ==0){ System .out.println( "Usage : \nGZIPcompress file\n" + " tUses GZIP compr...
2018-09-05 21:33:27 583
原创 带输入框EditText的dialog
private void showDialog () { AlertDialog.Builder builder = new AlertDialog.Builder(SendMeActivity.this); LayoutInflater inflater = LayoutInflater.from(getApplicationContext()); View view...
2018-09-05 16:17:24 3535
原创 带圆圈的进度条提示框
mProgressDialog = new ProgressDialog(this);mProgressDialog.setCancelable(false);mProgressDialog.setCanceledOnTouchOutside(false);mProgressDialog.setTitle("Scan Application");mProgressDialog.setMe...
2018-09-04 16:31:31 593
原创 展示dialog的,结束任务后,自动消失
//创建对话框private void showLoadProgress(){ mProgressDialog = new ProgressDialog(this); mProgressDialog.setCancelable(false); mProgressDialog.setCanceledOnTouchOutside(false); mProgressD...
2018-08-30 11:29:22 1883
原创 单选按钮实现
1、创建一个Been ,记录状态public class DataBeen { public boolean isChecked = false;}2.适配器中操作点击事件,用来显示和隐藏public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHol...
2018-08-09 22:20:02 818
原创 7.0相机拍照后,保存图片到自定义的路径
1.布局是两个button一个是打开相机,一个是打开相册<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/re...
2018-08-04 20:47:04 2350
原创 图片转化为文件
# Camera-And-Album-Test下列代码,请求网络图片转换为bitmap,然后保存到指定文件夹,微信,QQ分享,要求缩略图不大于32kb压缩图片代码,使用了Glide来进行图片压缩处理Glide.get(ShopDetailsActivity.this).clearMemory(); Log.e("分享图片地址链接分享", "分享图片地址:...
2018-07-29 16:04:24 759
原创 Android 出现编译通过无法安装的解决方式
升级到3.0后,项目导入后,编译通过了,但是居然不可以安装到模拟器上或者手机上,然后google一把,在Module's build.gradle 下的android下添加:splits { abi { enable true reset() include 'x86', 'armeabi-v7a' universalApk...
2018-03-27 14:13:57 1089 1
原创 FragmentTabHost和fragment,viewpager,tablayout快速搭建一个底部导航栏的主界面
效果如下:首先,我们分为两层解决第一层是底部导航栏和fragment的一层,第二个我们把fragment里面加上fragment,viewpager,tablayout.第一层的 MainActivit的布局如下xml version="1.0" encoding="utf-8"?>LinearLayout xmlns:android="http://s
2018-01-22 15:13:32 368
原创 Cardview你必须知道的一些属性
1.首先使用cardview要依赖design包2.cardview可包裹图片控件,文字 等,作为容器3.cardview属性有card_view:cardElevation 阴影的大小card_view:cardMaxElevation 阴影最大高度card_view:cardBackgroundColor 卡片的背景色card_view:cardCornerRadius
2018-01-16 10:49:40 791
原创 Android Studio3.0后,butterknife报错处理
1.首先在项目中依赖/*查找控件*/compile 'com.jakewharton:butterknife:7.0.1'2在自己的mudule的defaultConfig下添加一段代码javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true
2018-01-13 16:43:46 328 1
原创 TabLayout与ViewPagerh共用时的抽取框架
1,在开发App时,我们会遇到很多界面的TabLayout的中的Fragment的跳转问题,这时候为了避免重复写大量的代码,我们找出共性,抽取一个类,来共同的管理,减少代码量,首先我们有一个基类 public abstract class BaseFragment extends Fragment { //使用ui框架进行切换 private LoaderPager mL
2017-08-07 00:52:34 292
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人