枚举
public enum EnumBean {
//这些类别每个都是一个该EnumBean的类、也就是多个EnumBean的对象、只是这些枚举定义的方式有点不同、类似于EnumBean enumbean;只不过枚举调用是直接可以点出来的,也就是类似于static的
TAB01(0, "随性一笔"),
TAB02(1, "SeekBar"),
TAB03(2, "PopWindow-List"),
TAB04(3, "gson/fastJson-特殊字符转译"),
TAB05(4, "Rxjava-请求示例"),
TAB06(5, "Pic选择"),
TAB07(6, "DialogFragment"),
TAB08(7, "跳转App"),
TAB09(8, "事件分析"),
TAB10(9, "重定项-URL2JS"),
TAB11(10, "方法作用域");
private String enumName;
private int enumPosition;
EnumBean(int position, String tab01) {
enumName = tab01;
enumPosition = position;
}
@Override
public String toString() {
EnumBean[] values = EnumBean.values();
for (EnumBean enumBean : values) {
if (enumBean.getEnumPosition() == 10) {
return enumBean.getEnumName();
}
}
return "";
}
public String getEnumName() {
return enumName;
}
public void setEnumName(String enumName) {
this.enumName = enumName;
}
public int getEnumPosition() {
return enumPosition;
}
public void setEnumPosition(int enumPosition) {
this.enumPosition = enumPosition;
}
}
枚举唯一和对象不同的一点是存储的方式:其就类似于对象可以设置属性、但是其也可以拿来比较,例如switch比对
switch语句只支持int,char,enum类型–所以这点尤为重要
enum Signal { GREEN, YELLOW, RED } public class TrafficLight { Signal color = Signal.RED; public void change() { switch (color) { case RED: color = Signal.GREEN; break; case YELLOW: color = Signal.RED; break; case GREEN: color = Signal.YELLOW; break; } } }
直接获取对应的EnumBean的对象
EnumBean tab01 = EnumBean.TAB01;
通过对应的对象命名获取对应的EnumBean的对象
EnumBean enumBean = EnumBean.valueOf("TAB01");
获取EnumBean的对象集合
EnumBean[] values = EnumBean.values();
RGB
public static final Bitmap.Config ALPHA_8
public static final Bitmap.Config ARGB_4444
public static final Bitmap.Config ARGB_8888
public static final Bitmap.Config RGB_565
- 其实这都是色彩的存储方法:我们知道ARGB指的是一种色彩模式,里面A代表Alpha,R表示red,G表示green,B表示blue,其实所有的可见色都是右红绿蓝组成的,所以红绿蓝又称为三原色,每个原色都存储着所表示颜色的信息值
说白了其实就是:
ALPHA_8就是Alpha由8位组成 ARGB_4444就是由4个4位组成即16位, ARGB_8888就是由4个8位组成即32位, RGB_565就是R为5位,G为6位,B为5位共16位
由此可见:
ALPHA_8 代表8位Alpha位图 ARGB_4444 代表16位ARGB位图 ARGB_8888 代表24位ARGB位图 RGB_565 代表16位RGB位图
位图位数越高代表其可以存储的颜色信息越多,当然图像也就越逼真。
ps: 这里像素点大小(每个像素点占用内存的大小)以 4B 来计算是因为,当没有特别指定时,系统默认为 ARGB_8888 作为像素点的数据格式,其他的格式如下:
ALPHA_8 -- (1B)
RGB_565 -- (2B)
ARGB_4444 -- (2B)
ARGB_8888 -- (4B)
RGBA_F16 -- (8B)
正常的颜色FFEECC:其也是由 FF\EE\CC :256、256、256 所以正常是44 44 4*4等24位二进制数值组成
一切都源于二进制最后都会归于二进制:Android 内部资源文件id也是内部对应R对象内部的二进制值转换成16进制存储,,内部规则也是根据二进制转换;