随笔分类 - android app
android app 相关实现
摘要:Android activity 加载布局文件流程 一.onCreate初始化AppCompatActivity.onCreate 先调用getDelegate() 创建 AppCompatDelegateImplN(最终继承AppCompatDelegateImplV9->AppCompatDel
阅读全文
摘要:Android中毛玻璃效果主要有两种实现方式。1.使用JAVA算法FastBlur实现方法1 先将图片缩小,然后放大图片,再设置为控件背景以达到更模糊的效果,同时也提升模糊算法的处理效率。2.使用Android自带类RenderScript 实现方法2 模糊半径只能设置1-25。 对比下来同样的模糊
阅读全文
摘要:Android mvvm使用流程一.几种常见架构模式对比1.MVC(Model-View-Controller)MVC模式的优点在于模块化、可扩展性和可维护性,但缺点是控制器和视图之间的耦合度较高。2.MVP(Model-View-Presenter)模式Presenter同时持有Model和Vie
阅读全文
摘要:主题配置 <style name="MainThemeCamera" parent="Theme.AppCompat.DayNight.NoActionBar"> <item name="android:windowBackground">@color/black</item> <item name
阅读全文
摘要:AndServer提供了在 Android 设备上搭建一个 Web 服务器的源码,它可以接受客户端文件上传、下载文件,相关流程和使用方法如下: andserver 关键类StorageWebsite -> BasicWebsite -> Website -> HandlerAdapter Handl
阅读全文
摘要:1.将ui提供的 .9.png 图片 放到项目drawable 目录下面,2.点击drawable 目录下面的.9图片预览 ,如图所示预览界面默认有两个tab,9-Patch,ImageFilterEditor 9-Patch 这个tab主要用来拖动四个边缘黑线来控制可拉伸的范围。其中:左、上两条黑
阅读全文
摘要:aidl传输文件有大小1M限制,单次传输不适合传递大数据,可以使用aidl传递共享内存引用ParcelFileDescriptor方式传递图片信息。具体实现如下一、service端1.1.aidl文件IIpcService.aidl 定义,这里主要用到pfd参数interface IIpcServi
阅读全文
摘要:android 相机应用全屏显示 方法1.可以调用如下setFullscreen方法实现全屏显示,2.在相机界面全屏加载时候回闪现状态栏,需要给activity 主题MainThemeCamera 配置一个全屏的背景android:windowBackground 来规避状态栏闪现问题。 /** *
阅读全文
摘要:一.测试aidl请求,客户端应用 1多线程连续发送18个请求,服务端应用1做30秒耗时处理.,从log可知1.同一个服务 aidl最多同时处理16个请求,超出的请求会在服务端阻塞处理完后响应处理,同时在服务端阻塞处理(达到同时16个请求)完后,打印如下log:E binder thread pool
阅读全文
摘要:ArchTaskExecutor 是androidx封装的线程接口 接口内部是 调用 Executors 开启4个线程的java线程池 Executors.newFixedThreadPool(4, new ThreadFactory() { 切换到子线程或者主线程ArchTaskExecutor.
阅读全文
摘要:实现同步机制有两个方法: 1、同步代码块: synchronized(同一个数据){} 同一个数据:就是N条线程同时访问一个数据。 2、同步方法: public synchronized 数据返回类型方法名(){} 线程通讯: 当 使用synchronized 来修饰某个共享资源时(分同步代码块和同
阅读全文
摘要:bind service client不引用aidl创建单独的aidl仓库,在该仓库添加aidl文件,IService.aidl,定义可供client连接的aidl类添加aidl文件 IClientListener.aidl,定义可供client接收消息的aidl类1.在aidl仓库创建 MyMan
阅读全文
摘要:mStartSnapHelper.attachToRecyclerView(mRecyclerViewMovie);mStartSnapHelper.setPageListener(this);mRecyclerViewMovie.setLayoutManager(mVLinearLayoutMan
阅读全文
摘要:Glide.with(mContext) .asBitmap() .load(imageUrl) .apply(options) //.into(mImageView); .into(mTarget);下面在获取到下载图片尺寸信息后,基于图片宽高比,设置imageview宽高,给imageview
阅读全文
摘要:1. TabLayout 设置 指示条 颜色、高度,字体颜色大小等 <android.support.design.widget.TabLayout android:id="@+id/tab_layout" android:layout_width="wrap_content" android:la
阅读全文
摘要:一、创建通用 RecyclerView.Adapter public class CommonAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> { private static final String TAG = AppCo
阅读全文
摘要:一、创建通知栏布局文件 view_notification_layout.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/navigation_list_ite
阅读全文
摘要:一.生命周期不同,销毁方式不同1.startService onCreate->onStartCommand 通过调用stopService 停止服务,否则一直后台运行->onDestroy()2.bindService onCreate->onBind调用者调用unbindService方法或者调
阅读全文
摘要:一、创建 继承 Serializable的bean,增加一个唯一个序列化id serialVersionUID 作用是因为java sdk会自动进行hash计算,并生成唯一的UID值。手动设置serialVersionUID的好处是当前class如果改变了成员变量,比如增加或者删除之后,这个UID是
阅读全文
摘要:一、创建 继承 Parcelable的bean, 代码中 writeToParcel 回调方法完成序列化, createFromParcel回调方法完成反序列化(注释:如果bean中变量是类则该类也要继承Parcelable) 例如: public class Person implements P
阅读全文