Android初级基础知识复习(一) —— 简单布局

1. JDK

JDK是Java语言的编译器,全称为Java Development Kit,即Java开发工具包。因为Android应用采用Java 语言开发,所以开发机上要先安装JDK

2. SDK

SDK是Android应用的编译器,全称为Software Development Kit,即软件开发工具包。SDK提供了App 开发的常用工具合集

3. NDK

NDK是C/C++代码的编译器,全称为Native Development Kit,意即原生开发工具包。

4.编译项目/模块

(1)选择菜单Build→Make Project,编译整个项目下的所有模块。 (2)选择菜单Build→Make Module ,编译指定名称的模块。 (3)选择菜单Build→Clean Project,然后选择菜单Build→Rebuild Project,先清理项目,再对整个项目 重新编译。

5.工程目录说明

(1)manifests子目录,下面只有一个xml文件,即AndroidManifest.xml,是App的运行配置文件。
(2)java子目录,下面有3个com.example.hellorworld包,其中第一个包存放的是App工程的java源代 码,后面两个包存放的是测试用的Java代码。
(3)res子目录,存放的是App工程的资源文件。res子目录下又有4个子目录:
drawable目录存放的是图形描述文件与用户图片。
layout目录存放的是App页面的布局文件。
mipmap目录存放的是启动图标。
values目录存放的是一些常量定义文件,比如字符串常量strings.xml、像素常量dimens.xml、颜色常量 colors.xml、样式风格定义styles.xml等。
Gradle Scripts下面主要是工程的编译配置文件,主要有:
(1)build.gradle,该文件分为项目级与模块级两种,用于描述App工程的编译规则。
(2)proguard-rules.pro,该文件用于描述java文件的代码混淆规则。
(3)gradle.properties,该文件用于配置编译工程的命令行参数,一般无须改动。
(4)settings.gradle,配置哪些模块在一起编译。初始内容为include ‘:app’,表示只编译App模块。
(5)local.properties,项目的本地配置,一般无须改动。该文件是在工程编译时自动生成的,用于描述 开发者本机的环境配置,比如SDK的本地路径、NDK的本地路径等。

6.使用快捷键
  1. Ctrl+S:保存文件。
  2. Ctrl+Z:撤销上次的编辑。
  3. Ctrl+Shift+Z:重做上次的编辑,建议改为Ctrl+Y,与Eclipse、UEStudio 等工具保持一致。Android Studio默认Ctrl+Y为删除当前行,这点不太 好,当你习惯按Ctrl+Y重做上次编辑时,系统却删除了当前行,非常不便
  4. Ctrl+C:复制。
  5. Ctrl+X:剪切。
  6. Ctrl+V:粘贴。
  7. Ctrl+A:全选。
  8. Delete:删除。
  9. Ctrl+F:查询。
  10. Ctrl+R:替换。
  11. Ctrl+/:注释选中代码(在每行代码前面加双斜杆)。
  12. Ctrl+Shift+/:注释选中的代码段(在选中的代码段前面加“/”,后面加“/”)。
  13. Ctrl+Alt+L:格式化选中的代码段。注意该快捷键与QQ默认的热键(锁定QQ)冲突,建议更换快捷 键,或者删除QQ的同名热键。
  14. Shift+F6:重命名。建议改为F2,与Wnidows和Eclipse的使用习惯保持一致。
  15. Alt+Enter:给光标所在位置的类导入相应的包。 Shift+F10:运行当前模块。 Ctrl+F5:清理并重新运行当前模块。
7.像素

Android支持的像素单位有:px(像素)、in(英寸)、mm(毫米)、pt(磅,1/72英寸)、dp(与设 备无关的显示单位)、dip(就是dp)、sp(用于设置字体大小)。其中,常用的有px、dp和sp三种。

  1. px是手机屏幕上可显示的最小单位,与物理设备的显示屏有关。一般来说,同样尺寸的屏 幕(比如5寸的手机)看起来越清晰,像素的密度越高,以px计量的分辨率也越大
  2. dp与物理设备无关,只与屏幕的尺寸有关。一般来说,同样尺寸的屏幕以dp计量的分辨率是一样的, 无论这个手机是哪个厂家生产的,dp大小都一样。
  3. sp的原理跟dp差不多,专门用于设置字体大小。
  4. dp与系统设置的字体大小没有关系,而sp会随系统设置的字体大小变大或变小。
  5. dp和px之间的联系取决于具体设备上的像素密度,像素密度就是DisplayMetrics里的density参数。当 density=1.0时,表示一个dp值对应一个px值;当density=1.5时,表示两个dp值对应3个px值;当density=2.0 时,表示一个dp值对应两个px值。
  6. 在XML布局文件中,为了让不同设备屏幕拥有统一的显示效果,除了sp用于设置文字大小外,其余要 用尺寸大小的地方都用dp。在代码中情况又有所不同,Android用于设置大小的函数都以px为单位。无论是 LayoutParams里的width和height,还是setMargins和setPadding,参数单位都是px,要想在代码中使用dp设置 布局大小或间距,得先把dp值转换成px值。
8.屏幕显示
8.1 颜色

在Android中,颜色值由透明度alpha和RGB(红、绿、蓝)三原色定义,有八位十六进制数与六位十六 进制数两种编码,例如八位编码FFEEDDCC,FF表示透明度,EE表示红色的浓度,DD表示绿色的浓度, CC表示蓝色的浓度。透明度为FF表示完全不透明,为00表示完全透明。RGB三色的数值越大颜色越浓也就 越亮,数值越小颜色越暗。亮到极致就是白色,暗到极致就是黑色,这样记就不会搞混了。

8.2 使用colors.xml中定义的颜色

res/values目录下有个colors.xml文件,是颜色常量的定义文件。如果要在布局文件中使用XML颜色常 量,可引用“@color/常量名”;如果要在代码中使用XML颜色常量,可通过这行代码获取: getResources().getColor(R.color.常量名)。

9.简单布局
9.1 视图View的基本属性

View是Android的基本视图,所有控件和布局都是由View类直接或间接派生而来的
下面是视图在XML布局文件中常用的属性定义说明。
id:指定该视图的编号。
layout_width:指定该视图的宽度。可以是具体的dp数值;可以是match_parent,表示与上级视图一样 宽;也可以是wrap_content,表示与内部内容一样宽(内部内容若超过上级视图的宽度,则该视图保 持与上级视图一样宽,超出宽度的内容得进行滚动才能显示出来)。
layout_height:指定该视图的高度。取值说明同layout_width。 layout_margin:指定该视图与周围视图之间的空白距离(包括上、下、左、右)。另有 layout_marginTop、layout_marginBottom、layout_marginLeft、layout_marginRight分别表示单独指定 视图与上边、下边、左边、右边视图的距离。
minWidth:指定该视图的最小宽度。 minHeight:指定该视图的最小高度。 background:指定该视图的背景。背景可以是颜色,也可以是图片。 layout_gravity:指定该视图与上级视图的对齐方式。
padding:指定该视图边缘与内部内容之间的空白距离。另有paddingTop、paddingBottom、 paddingLeft、paddingRight分别表示指定视图边缘与内容上边、下边、左边、右边的距离。
visibility:指定该视图的可视类型。(visible(默认值,可见),invisible(不可见),gone(消失))

下面是视图在代码中常用的设置方法说明。
setLayoutParams:设置该视图的布局参数。参数对象的构造函数可以设置视图的宽度和高度。其 中,LayoutParams.MATCH_PARENT表示与上级视图一样宽,也可以是 LayoutParams.WRAP_CONTENT,表示与内部内容一样宽;参数对象的setMargins方法可以设置该视 图与周围视图之间的空白距离。 setMinimu mWidth:设置该视图的最小宽度。 setMinimumHeight:设置该视图的最小高度。 setBackgroundColor:设置该视图的背景颜色。 setBackgroundDrawable:设置该视图的背景图片。 setBackgroundResource:设置该视图的背景资源id。 setPadding:设置该视图边缘与内部内容之间的空白距离。 setVisibility:设置该视图的可视类型。

layout_margin指的是当前图层与外部图层的距离。
padding指的是当前图层与内部图层的距离。

视图组ViewGroup是一类特殊视图,所有的布局类视图都是从它派生而来的。

Android中的视图分为两类,一类是布局,另一类是控件。
布局与控件的区别在于:布局本质上是个容器,里面还可以 放其他视图(包括子布局和子控件);控件是一个单一的实体,已 经是最后一级,下面不能再挂其他视图。
ViewGroup有3个方法,这3个方法也是所有布局类视图共同拥有的。
addView:往布局中添加一个视图。
removeView:从布局中删除指定视图。
removeAllViews:删除该布局下的所有视图。

9.2 简单布局
线性布局 LinearLayout

LinearLayout是最常用的布局,名字叫线性布局。顾名思义,LinearLayout下面的子视图就像用一根线 串了起来,所以LinearLayout内部视图的排列是有顺序的,要么从上到下依次垂直排列,要么从左到右依次 水平排列。

orientation:指定线性布局的方向。horizontal表示水平布局,vertical表示垂直布局。如果不指定该属性,就默认是horizontal。这真是出乎意料,因为大家感觉手机App理应从上往下垂直布局,所以这里 要特别注意垂直布局一定要设置orientation,不然默认的水平布局不符合多数业务场景。
gravity:指定布局内部视图与本线性布局的对齐方式。取值说明同layout_gravity。
layout_weight指定当前视图的宽或高占上级线性布局的权重。这里要注意,layout_weight属性并非在当前LinearLayout节点中设置,而是在下级视图的节点中设置。另外,如果layout_weight指定的是 当前视图在度上占的权重,layout_width就要同时设置为0dp;如果layout_weight指定的是当前视图在高度上占的权重,layout_height就要同时设置为0dp

下面是LinearLayout在代码中增加的两个方法。
setOrientation:设置线性布局的方向。
LinearLayout.HORIZONTAL表示水平布局, LinearLayout.VERTICAL表示垂直布局。
setGravity:设置布局内部视图与本线性布局的对齐方式。

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

滚动视图ScrollView

手机屏幕的显示空间有限,常常需要上下滑动或左右滑动才能拉出其余页面内容,可惜Android的布局 节点都不支持自行滚动,这时就要借助ScrollView滚动视图实现了。与线性布局类似,滚动视图也分为垂直 方向和水平方向两类,其中垂直滚动的视图名是ScrollView,水平滚动的视图名是HorizontalScrollView。
主要注意以下3点:
(1)垂直方向滚动时,layout_width要设置为match_parent,layout_height要设置为wrap_content。
(2)水平方向滚动时,layout_width要设置为wrap_content,layout_height要设置为match_parent。
(3)滚动视图节点下面必须且只能挂着一个子布局节点,否则会在运行时报错Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child。

有时ScrollView的实际内容不够,又想让它充满屏幕,怎么办呢?如果把layout_height属性赋值为 match_parent,那么结果还是不会充满,正确的做法是再增加一行fillViewport的属性设置
<ScrollView
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:fillViewport=“true”

10.简单控件
10.1 文本视图TextView

XML中的属性:
text,textColor,textSize,textAppearance(设置文本风格,风格定义在res/styles.xml),gravity
类的设置方法:
setText,setTextColor,setTextSize,setTextAppearance,setGravity

跑马灯效果用到的属性和方法:
xml属性:singleLine(指定文本是否单行显示),ellipsize(指定文本超出范围后省略方式,省略方式的取值说明有:start:省略号在开头,middle:省略号在中间,end:省略号在末尾,marquee:跑马灯显示),foucusable(指定是否获得焦点,跑马灯效果要求设置为true),focusableInTouchMode(指定在触摸时是否活得焦点,跑马灯效果要求设置为true)
设置方法:setSingleLine,setEllipsize,setFoucusable,setFocusableInTouchMode,
TruncateAt类省略方式START,MIDDLE,END,MARQUEE

10.2 按钮Button

Button派生自TextView,二者在UI上的区别主要是Button控件有个按钮外观,提示用户点击这里。系统 默认的按钮外观通常都不好看,需要更换靓一点、活泼一点的图片,这时在布局文件中修改Button节点的 background属性就可以了。如果把background属性设置为@null,就会去除Button控件的背景样式,此时的Button看起来跟TextView没什么区别。

Android中的简单按钮主要是Button和后面提到的ImageButton。这两个按钮对点击和长按监听器的使用 方法并不复杂,主要步骤如下:

步骤01 自己定义一个扩展自监听器的类,如点击监听器扩展自View.OnClickListener,长按监听器扩展自View.OnLongClickListener。为了方便起见,也可以直接给页面的Activity类加上监听器接口。
步骤02 在自定义监听器类中重写点击或者长按方法,加入事件处理的代码。点击方法的名称是 onClick,长按方法的名称是onLongClick。
步骤03 哪个视图要响应点击或长按,就给哪个视图注册对应的监听器对象。点击事件的注册方法是 setOnClickListener长按事件的注册方法是setOnLongClickListener

10.2 图像视图ImageView

ImageView是图像显示控件,与图形显示有关的属性说明如下。

  1. scaleType:指定图形的拉伸类型,默认是fitCenter。
  2. src:指定图形来源,src图形按照scaleType拉伸。注意背景图不按scaleType指定的方式拉伸,背景默 认以fitXY方式拉伸。

XML中的拉伸类型:fitXY(拉伸图片使其正好填满视图(图片可能被拉伸变形)),fitStart(保持宽高比例,拉伸图片使其位于视图上方或左侧),fitCenter(保持宽高比例,拉伸图片使其位于视图中间),fitEnd(保持宽高比例,拉伸图片使其位于试图下方或右侧),center(保持图片原尺寸,并使其位于视图中间),centerCrop(拉伸图片使其充满视图,并位于视图中间),centerInside(保持宽高比例,缩小图片使之位于视图中间(只缩小不放大)。当图片尺寸大于视图时,centerInside等于fitCenter;当图片尺寸小于视图时,centerInside等同于center)

ScaleType类中的拉伸类型:
FIT_XY,FIT_START,FIT_CENTER,FIT_END,CENTER,CENTER_CROP,CENTER_INSIDE

ImageView在代码中调用的方法说明如下。
setScaleType:设置图形的拉伸类型。具体的取值说明见表2-8。
setImageDrawable:设置图形的Drawable对象。
setImageResource:设置图形的资源ID。
setImageBitmap:设置图形的位图对象

Android能用ImageView展示图片,也自带屏幕截图功能。尽管自带的屏蔽截图功能有些简单,不过多 数场合已经够用了。因为截图功能面向所有视图,所以可以从其他控件或布局那里截图下来,然后显示在 ImageView上面。 使用截图功能必须通过代码完成,相关方法如下(这些方法都来自于View类)。
setDrawingCacheEnabled:设置绘图缓存的可用状态。true表示打开,false表示关闭。 isDrawingCacheEnabled:判断该控件的绘图缓存是否可用。
setDrawingCacheQuality:设置绘图缓存的质量。
getDrawingCache:获取该控件的绘图缓存结果,返回值为Bitmap类型。 setDrawingCacheBackgroundColor:设置绘图缓存的背景颜色。大家可能会奇怪为何要提供该方法, 因为绘图缓存默认背景色是黑色,如果不提前设置缓存的背景色,截图的结果就是黑乎乎一片,所 以需要将背景色设置为默认颜色(通常是白色)。

操作截图功能的具体步骤如下:
步骤01 开始截图前,先调用setDrawingCacheEnabled方法,设置绘图缓存为可用状态。注意该方法在 一开始就得调用,因为先开启绘图缓存,之后变更的界面才会记录到缓存中;如果先变更界面再开启绘图 缓存,缓存里就是空的。
步骤02 调用getDrawingCache方法获取缓存中的图像数据。
步骤03 完成截图,延迟若干毫秒后调用setDrawingCacheEnabled方法关闭绘图缓存。如果接下来还要 截图,就再次调用setDrawingCacheEnabled方法重新开启绘图缓存。

10.3 图像按钮ImageButton

ImageButton其实派生自ImageView,而不是派生自Button,ImageView拥有的属性和方法,ImageButton 统统拥有,只是ImageButton有个默认的按钮外观。
ImageButton和Button都起到控制按钮的作用,不同的是Button是文本按钮,ImageButton是图像按钮, 这两个按钮的主要区别在于:
(1)Button既可显示文本也可显示图形(通过设置背景图),而ImageButton只能显示图形不能显示文 本。
(2)ImageButton上的图像可按比例拉伸,而Button上的大图会拉伸变形(因为背景图无法按比例拉 伸)。
(3)Button只能在背景显示一张图形,而ImageButton可分别在前景和背景显示两张图形,实现图片叠 加的效果。
具体可在XML布局文件中设置以下5个属性。

  1. drawableTop:指定文本上方的图形。
  2. drawableBottom:指定文本下方的图形。
  3. drawableLeft:指定文本左边的图形。
  4. drawableRight:指定文本右边的图形。
  5. drawablePadding:指定图形与文本的间距。

若在代码中实现,则可调用如下方法。

  1. setCompoundDrawables:设置文本周围的图形。
  2. 可分别设置左边、上边、右边、下边的图形。
  3. setCompoundDrawablePadding:设置图形与文本的间距。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Android的Widget是指可以被放置在桌面或者其他应用中的小部件,比如常见的时钟、天气、日历等等。在Android中,Widget的布局可以使用XML文件来进行定义,与普通的布局定义类似,可以使用各种属性来设置Widget的样式和行为。 在Widget的XML布局文件中,可以使用View类中定义的许多属性来控制Widget的样式和行为,比如: 1. android:id:设置Widget的ID,可以在代码中通过findViewById()方法来获取对应的View对象。 2. android:layout_width、android:layout_height:设置Widget的宽度和高度,可以使用具体数值或者match_parent、wrap_content等特殊值。 3. android:layout_gravity:设置Widget在父布局中的对齐方式,比如center、left、right等等。 4. android:padding、android:paddingLeft、android:paddingRight等:设置Widget的内边距,用于控制Widget内部内容的显示位置。 5. android:background:设置Widget的背景颜色或者背景图片。 6. android:clickable、android:longClickable:设置Widget是否可以被点击或者长按。 7. android:focusable、android:focusableInTouchMode:设置Widget是否可以获取焦点,用于控制Widget是否可以响应键盘事件等。 8. android:visibility:设置Widget是否可见,可以使用值为visible、invisible、gone。 除了以上列出的属性之外,还有许多其他的属性可以用于控制Widget的样式和行为,具体可以查看Android官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值