自定义View-了解View
一. View的定义和分类1. 定义View 表现为显示在屏幕上的各种视图。
2. 分类① 单一视图:单独的View
② 多个视图:多个View组成的ViewGroup
二. View 的构造函数12345678910111213141516171819202122232425//如果View是在Java代码里面new的,则调用第一个构造函数public SelfView(Context context) { super(context);}//如果View是在.xml里声明的,则调用第二个构造函数//自定义属性是从AttributeSet参数传进来的public SelfView(Context context, AttributeSet attrs) { super(context, attrs);}//不会自动调用//一般是在第二个构造函数里主动调用//如View有style属性时public SelfView(Context context, AttributeSet attrs, int defStyleAttr) ...
自定义View-储备知识
一. 前言在学习自定义View之前,我们首先需要了解View是怎么被一步步显示出来的。为此,我们需要了解 ViewRoot,DecorView,Window,Activity。
二. ViewRoot1. 作用连接器,连接 WindowManager 和 DecorView,完成 View 的绘制流程。
2. 具体描述① ViewRoot是抽象类,ViewRootImpl是实现类。
② 与 WindowManagerService 通讯,调整窗口大小以及布局。
③ 向 DecorView 派发输事件。
④ 完成三大绘制流程:measure,layout,draw。
三. DecorView1. 定义顶层View,即 Android 视图树的根节点;同时也是 FrameLayout 的子类。
2. 作用① 加载,显示布局。
② View层的事件都先经过 DecorView,再传递到 View。
3. 特别说明
DecorView内含1个竖直方向的LinearLayout,分为2部分:上 = 标题栏(titlebar)和 下 = 内容栏(content)
在Activity中通过 setC ...
Android控件-SeekBar
一. 简介1234android.view.View ↳android.widget.ProgressBar ↳android.widget.AbsSeekBar ↳android.widget.SeekBar
SeekBar继承于ProgressBar,那么ProgressBar有的属性,我们SeekBar也有。SeekBar多了一个thumb属性,用来设置滑块的图标。
二. 属性123456789android:max="" //最大进度值 android:progress="" //当前进度值android:secondaryProgress=""//第二进度的值,常用来作为进度值的背景或者缓存进度 android:progressDrawable="" //progress的样式 android:thumb="" //滑块的图标
三. 自定义progressDrawable12 ...
Android控件-ProgresBar
一. 简介12android.view.View ↳android.widget.ProgressBar
ProgressBar一般用于显示一个过程,例如数据加载过程,文件下载进度,音乐播放进度等。
ProgressBar有两种样式:
123style="@style/Widget.AppCompat.ProgressBar" //默认样式,圆形进度,旋转转圈,不显示具体的进度值,适用于界面加载style="@style/Widget.AppCompat.ProgressBar.Horizontal" //横向带进度的进度条
二. 属性1234567891011style="" //样式,有两种值。 //默认的圆形:@style/Widget.AppCompat.ProgressBar //横向进度:@style/Widget.AppCompat.Prog ...
Android随笔-开发常用的工具类
1. dp , px 的转化 sp,px 的转化123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869public class PxUtil { /** * 得到设备的密度 */ public static float getScreenDensity(Context context) { return context.getResources().getDisplayMetrics().density; } /** * 将传递的 整型dp 值转化为 px * @param dp * @param context * @return */ public static int dpToPx(int dp, Context context){ ...
Java-修饰符
一. 简介详细内容参考:Java修饰符
本篇主要是对访问控制修饰符的讲解。
public,protected,default( 不使用修饰符,包访问权限 ),private
二. 在类中的使用对于非内部类而言,类的访问权限修饰词仅有public和包访问权限两种
内部类可以是private或protected的
总结:
default包访问权限:包访问权限就是Java中的默认的权限,具有包访问权限的类成员只能被同一包中的类访问。
public :被public修饰的类成员能被所有的类直接访问;
1. default1234567891011121314151617181920212223//父类package com.xl.study.day0417.xiushifu;class MyClass { public void printfStr(){ System.out.println("父类"); }}//同一个包下的子类package com.xl.study.day0417.xiushifu;pu ...
Java-泛型
一. 什么是泛型“泛型”,顾名思义,“泛指的类型”。我们提供了泛指的概念,但具体执行的时候却可以有具体的规则来约束。
二. 为什么要使用泛型 以ArrayList为例,如果我们不用泛型。那么存储Integer我们需要使用IntegerArrayList,存储String需要使用StringArrayList。这样子很麻烦,而且很多部分都重复操作了。但如果我们使用泛型,我们只需要传入指定存储的类就好,例如ArrayList,ArrayList。
三. 泛型类1. 模板123public class ClassName<泛型标识> { private 泛型标识 property;}
2. 泛型标识
对于泛型标识符,可以是字母、中文字符等,不过一般用大写英文字符。一般有一些约定俗称的写法。
如果是表示集合的元素类型,一般用字符E,如public class ArrayList<E>。
如果是表示关键字和值的类型,一般用字符K和V,如public class HashMap<K,V>。
如果是表示一个类型,一般用字符T,如publ ...
Java-理论知识
1.Java和C的区别2.Java中的存储区域问题3.Java修饰符4.Java中的OOP5.Java中的Override和Overload6.Java中的代码块,内部类7.Java 单例模式8.Java 抽象类和接口9.Java 模板模式10.Java 数组11.Java Number&Math类12.Java Character类13.Java String类14.Java StringBuffer 和 StringBuilder15.Java 日期时间16.Java 正则表达式17.Java 文件操作18.Java 集合19.Java8 新特性20.Java 数据结构21.Java UML图22.Java 异常处理23.Win10平台下安装并配置Apache服务器24.Win10平台下安装并配置php25.实战:Java 扑克牌比较游戏26.Java 多线程27.Java 网络28.Java MySql连接29.Java Properties的常见使用30.Java 反射31.Java 泛型