• AS开发实战第二章学习笔记——其他


    第二章学习笔记(1.19-1.22)
    像素
    Android支持的像素单位主要有px(像素)、in(英寸)、mm(毫米)、pt(磅,1/72英寸)、dp(与设备无关的显示单位)、dip(就是dp)、sp(用于设置字体大小),常用的是px、dp、sp三种。dp与物理设备无关吗,只与屏幕的尺寸有关。sp的原理跟dp差不多,专门用于设置字体大小。设置普通字体时,同数值dp和sp的文字看起来一样大,如果设置为大字体,用dp设置的文字没有变化,用sp设置的文字就变大了。所以说,dp与系统设置的字体大小没有关系,而sp会随系统设置的字体大小变大或变小。
    XML布局文件中,为了让不同设备屏幕拥有统一的显示效果,除了sp用于设置文字的大小外,其余要用大小的地方都用dp。
    Android用于设置大小的函数都以px为单位,无论是setMargins还是setPadding,参数单位都是px,想要在代码中使用dp设置布局大小或间距,就要先把dp值转换成px值。

    颜色
    Android中,颜色值由透明度alpha和RGB(红绿蓝)三原色定义
    八位十六进制数编码
    例如八位编码FFEEDDCC,FF表示透明度(FF表示完全不透明,00表示完全透明),EE表示红色的浓度,DD表示绿色的浓度,CC表示蓝色的浓度,RGB三色的数值越大颜色越浓也就越亮,数值越小颜色越暗,亮到极致就是白色,暗到极致就是黑色。
    六位十六进制编码分为两种情况,在代码中默认透明(透明度为00),在XML文件中默认不透明(透明度为FF),所以说,在代码中一般不要用六位编码,因为六位编码在代码中默认是透明的。
    1.使用系统已定义的颜色变量
    BLACK GRAY DKGRAY LTGRAY WHITE RED GREEN BLUE YELLOW TRANSPARENT CYAN(青色) MAGENTA(玫红)
    2.使用十六进制的颜色编码
    XML文件中android:textColor="#000000"
    代码文件中setTextColor(0xff00ff00),也可以通过Color.rgb(int red, int green, int blue)和Color.argb(int alpha, int red, int green, int blue)这两种方法指定颜色
    用法举例setTextColor(Color.rgb(100, 100, 100));
    3.使用colors.xml中定义的颜色
    XML文件中@color/常量名
    代码文件中getResources().getColor(R.color.常量名)

    屏幕分辨率
    在代码中获取分辨率就是获得DisplayMetrics对象,然后从该对象中获得宽度、高度、像素密度等信息,DisplayMetrics类的常用属性说明:
    widthPixels:以px为单位计量的宽度值
    heightPixels:以px为单位计量的高度值
    density:像素密度,即一个dp单位包含多少个px单位

    简单布局

    LinearLayout的orientation属性的默认是horizontal
    以宽度为例,wrap_content表示与内部内容一样宽(内部内容如果超过上级视图的宽度,则该视图保持与上级视图一样宽,超出宽度的内容得进行滚动才能显示出来)
    minWidth:指定该视图的最小宽度(还有minHeight)
    visibility:指定该视图的可视类型,取值如下:
    visible 可见,默认值
    invisible 不可见,虽然看不到但是还占着位置
    gone 消失,不仅看不到而且不占位置了
    一些方法:
    setMinimumWidth
    setBackgroundColor
    setBackgroundDrawable
    setBackgroundResource

    margin和padding的概念区别:
    margin是指当前视图与周围视图的距离,padding是指当前视图与内部内容之间的距离。

    layout_gravity和gravity的区别:
    layout_gravity指定该视图与上级视图的对齐方式,而gravity指定布局内部视图与本布局的对齐方式。

    垂直滚动视图ScrollView,水平滚动视图HorizontalScrollView
    (1)垂直方向滚动时,layout_width要设置为match_parent,layout_height要设置为wrap_content
    (2)水平方向滚动时,layout_width要设置为wrap_content,layout_height要设置为match_parent
    (3)滚动视图节点下面必须只能挂着一个子布局节点,否则会在运行时报错(ScrollView can only have one direct child.)
    ScrollView的实际内容不够,又想让它充满屏幕,怎么办呢?
    android:layout_height="match_parent"
    android:fillViewport="true"

    简单控件
    ImageView拉伸类型的取值说明
    fitXY 拉伸图片使其正好填满视图(图片可能被拉伸变形)
    fitStart 拉伸图片使其位于视图上部
    fitCenter 拉伸图片使其位于视图中间
    fitEnd 拉伸图片使其位于视图下部
    center 保持图片原尺寸,并使其位于视图中间
    centerCrop 从图片中心开始,均衡地缩放图像(保持宽高比例不变),使得图片充满视图,并位于视图中间
    centerInside 使图片位于视图中间(只压不拉)。当图片尺寸大于视图时,centerInside等同于fitCenter;当图片尺寸小于视图时,centerInside等同于center
    ScaleType类中的拉伸类型全部是大写的,scaleType默认是fitCenter
    src:指定图形来源,src图形按照scaleType拉伸,注意背景图不按scaleType指定的方式拉伸,背景默认以fitXY拉伸
    ImageView在代码中调用的方法说明:
    setScaleType
    setImageDrawable
    setImageResource
    setImageBitmap
    截图功能相关方法:(CaptureActivity)
    setDrawingCacheEnabled:设置绘图缓存的可用状态,true表示打开,false表示关闭
    isDrawingCacheEnabled:判断该空间的绘图缓存是否可用
    setDrawingCacheQuality:设置绘图缓存的质量
    getDrawingCache:获取该空间的绘图缓存结果,返回值为Bitmap类型
    setDrawingCacheBackgroundColor: 设置绘图缓存的背景颜色,绘图缓存默认背景为黑色,如果不提前设置缓存的背景色,截图的结果就是黑乎乎一片,所以需要将背景色设置为默认颜色(通常是白色)
    截图功能的具体步骤如下:
    1.开始截图前,先调用setDrawingCacheEnabled方法,设置绘图缓存为可用状态。注意该方法在一开始就得调用,因为先开启绘图缓存,之后变更的界面才会记录到缓存中;如果先变更界面再开启绘图缓存,缓存里就是空的
    2.调用getDrawingCache方法获取缓存中的图像数据
    3.完成截图,延迟若干毫秒后调用setDrawingCacheEnabled方法关闭绘图缓存,如果接下来还要截图,就再次调用setDrawingCacheEnabled方法重新开启绘图缓存。(这里要启一个新线程)

    关于长按
    只要记得把最后的return改成true就好了

    ImageButton
    Button既可显示文本也可显示图形(通过设置背景图),而ImageButton只能显示图形不能显示文本
    ImageButton上的图像可按比例,而Button上的大图会拉伸变形(因为背景图无法按比例拉伸)
    Button只能在背景显示一张图形,而ImageButton可分别在前景和背景显示两张图形,实现图片叠加的效果

    文字周围放置图片用到的属性和方法(IconActivity)
    drawableTop 指定文本上方的图形
    drawableBottom
    drawableLeft
    drawableRight
    drawablePadding 指定图形与文本的间距
    setCompoundDrawables 设置文本周围的图形,依次为左、上、右、下
    样例btn.setCompoundDrawables(null,drawable,null,null)
    setCompoundDrawablePadding 设置图形与文本的间距

    在界面上增加一个水平分割线:

    <View

      android:layout_width="match_parent"

      android:layout_height="1dp"

      android:background="#000000" />

    九宫格图片:略

  • 相关阅读:
    c++实验9 图及图的操作实验
    Html/CSS 示例演练 图书馆后台界面
    c++实验8 哈夫曼编码-译码器
    Html/CSS 初步介绍html和css部分重要标签
    c++实验7 二叉树
    JavaWeb -学生信息管理实践(JDBC+web+三层架构+DBUtil构造思路)
    java 实验6 图形用户界面设计试验(2)
    操作表与操作表数据行
    数据表操作练习
    数据库的介绍:
  • 原文地址:https://www.cnblogs.com/Briddle-ch/p/8331276.html
Copyright © 2020-2023  润新知