ConstraintLayout [TOC] ConstraintLayout 用法现在AndroidStudio新建的工程默认布局就是ConstrainsLayout,之所以这样是因为Google推荐我们这么做。ConstrainsLayout是RelativeLayout改良后的一个版本,尤其适合在GUI中设计App界面。 1. constraint一个控件(View)所在的位置由它的4个方向上的约束所确定,至少得有水平和 2021-03-18 UI Android UI
ImageView ImageView属性 contentDescription: 盲人点击的时候会系统会读出来. scaletype fitcenter: 小图片放到大imageview中,放大居中,会模糊 2021-03-18 UI Android UI
Drawable与Bitmap Drawable与Bitmap1.什么是DrawableAndroid中的Drawable(可绘制对象) 表示“可以绘制的东西”,是一个抽象类,是所有Drawable对象的基类。最常见的颜色和图片都可以是一个Drawable. 与View不同,可绘制对象不能接收事件,也不能与用户进行交互。 2.Drawable的子类/类型2.1位图文件位图图形文件(.png、.jpg 或 .gif)。创建 Bi 2021-03-18 UI Android UI
更新UI的方式 Handler的post()方法:实际调用了handler的sendMessageDelayed() Handler的sendMessage方法 View的post()方法 实际调用了handler的post方法 Activity的runOnUiThread()方法 如果当前的线程不等于UI线程(主线程),就去调用Handler的post()方法,否则就直接调用Runnable对象的如 2021-03-18 UI Android UI
自定义view ) viewGroup不需要draw自己 每一个viewgroup的大小跟他的父和孩子都相关,match_parent跟父一样,wrap_content表示取决于孩子 父给子参考大小,子测试自己,告诉父,父测出自身大小 怎么度量1.度量孩子大小 2.度量自己大小 onMeaseure()中的参数widthMeasureSpec 是怎么来的 父给的。 和xml中的android:la 2021-03-18 UI Android UI
Untitled 复选框 RadioGroup和RadioButton 计算孩子的规格时,padding是自己的属性,margin是孩子布局参数中的属性 @padding 是父view的左右padding + 孩子的左右margin(计算宽度规格时) public static int getChildMeasureSpec(int spec, int padding , int childDimension) 2021-03-18 UI Android UI
Glide用法 Glide3Glide最基本的使用方式: 三步走:先with(),再load(),最后into()。 首先,调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity或者Fragment类型的参数。也就是说我们选择的范围非常广,不管是在Activity还是Fragment中调用with()方法,都可以直接传this。那如果调 2021-03-18 UI Android UI
ViewPager用法 一、使用FragmentPagerAdapter1.配合FragmentPagerAdapter + TabLayout1.1.activity布局文件中使用viewpager标签和TabLayout标签 1.2.创建适配器:自定义类继承FragmentPagerAdapter 1.3.viewpager设置适配器 1.4.tablayout.setupWithViewPager(viewPage 2021-03-18 UI Android UI
bitmap bitmap:由像素组成 像素:由多个bit组成,图像中的1个小方格,有位置,有透明度,有通道。 通道是什么? 你可以简单理解成通道就是容器,一个可以储存色彩、选区、分类记录图片信息的容器。只不过通道是以黑色、白色、灰色、来存储这些颜色的,所以通道里面没有彩色信息,只有黑白灰。 灰度与透明度 1.灰度不是透明度,透明度是针对每种颜色,每种颜色都可以有0-100的透明度 2.灰度到底是什么呢,灰度只 2021-03-18 UI Android UI
View绘制背诵版 1.概述: View的绘制流程是从ViewRoot的performTraversals方法开始的,它经过measure,layout和draw三个过程才能最终将1个View绘制出来,其中mearsure用来测量View的宽和高,layout用来确定View在父容器中的放置位置,而draw则负责将View绘制在屏幕上。 performTraversals会依次调用performMearsure,pe 2021-03-18 UI Android UI
rxjava debounce(500, TimeUnit.MILLISECONDS)去抖。当调用函数N秒后,才会执行函数中动作,若在这N秒内又重复调用该函数则将取消前一次调用,并重新计算执行时间。 subscribeOn()和observeOn()实际上线程调度只有subscribeOn()和observeOn()两个方法。对于初学者,只需要掌握两点: subscribeOn()它指示Observable在 2021-03-18 rxjava Android rxjava
rxjava初学 二、 上下游默认是在同一个线程工作 我们需要先改变上游发送事件的线程, 让它去子线程中发送事件, 然后再改变下游的线程, 让它去主线程接收事件. 通过RxJava内置的线程调度器可以很轻松的做到这一点 observable.subscribeOn(Schedulersobservable.subscribeOn(Schedulers.newThread()) 2021-03-18 rxjava Android rxjava