signed

QiShunwang

“诚信为本、客户至上”

Android实训-Day3

2020/12/30 22:16:23   来源:

一.笔记

【项目结构】
src文件夹:存放代码的文件夹,中间有包结构。
gen文件夹:存放的是项目自动生成的配置java文件。开发者不能改动。
bin文件夹:存放一些编译生成的文件,是存放编译生成的apk安装包的位置
res文件夹:主流资源文件夹
            drawable-??dpi文件夹:存放不同分辨率的贴图
            layout文件夹:存放布局文件,指定控件显示效果和位置的文件。
AndroidManifest.xml 清单文件:存放项目配置的参数

【布局 Layout】
布局是摆放控件的规则。

Tip:
打开Windows显示文件扩展名的功能。
步骤
控制面板 --- 查看类别:大图标 --- 文件资源管理器选项 --- 查看 --- 取消勾选“隐藏已知文件的扩展名” --- 确定

【保持项目统一(重要)】
每次新建项目后,需要执行如下操作,让新创建的项目结构一致且精简。
1. 进入res---layout,删除activity_main.xml文件
2. 进入src---MainActivity.java代码,进入onCreate方法,
   更改setContentView(R.layout.activity_main);方法为
   setContentView(R.layout.fragment_main);
3.仔细删除MainActivity.java文件中除了onCreate以外的方法。
4.继续删除onCreate中的多余代码直到:
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);
    }
5.保存(Ctrl+S)所有更改的文件后,再次运行程序。


Tip:
在写代码的过程中,要善于使用自动补全的快捷键 Alt + /


【通用属性】
android:layout_width="match_parent"            宽度
android:layout_height="match_parent"        高度
可选值:(1) match_parent
            匹配父控件,上级多宽/长就多宽/长。
        (2) wrap_content
            包裹元素,内部的控件多宽/长就多宽/长。
        (3) fill_parent
            功能完全等同match_parent,通常使用match_parent
        (4) 手动输入一个固定宽度,单位dp
        
背景颜色,采用RGB记色法,红绿蓝(0-255),采用十六进制
在线颜色选择器(可根据选择的颜色得到形如 #fa7c09 的颜色代号):http://tools.jb51.net/static/colorpicker/
android:background="#fa7c09"

外边距
android:layout_margin="10dp"
还有单独设置某个方向的属性

内边距
android:padding="100dp"
还有单独这是某个方向的属性

设置某个布局或控件中子元素的重力方向
android:gravity="bottom|right"

【布局 Layout】
布局是摆放控件的规则,可以认为布局是一个透明的容器。
透明容器内部按照规则去摆放控件。

只关注android:开头的即可

LinearLayout 线性布局
线性布局表示内部的控件横着或者竖着排成一排。
android:orientation="vertical" 方向
可选值:horizontal(水平),vertical(垂直)

RelativeLayout 相对布局
在某个参照物的某个方向或位置,相对布局的第一步就是给参照物起一个名字(id).
相对布局中,如果不指定子控件的相对位置,默认都在左上角堆放
例子:创建一个新的布局文件
1)选中res---layout文件夹,右键---New---Android XML File
2)在弹出的窗口中的File栏,输入要创建的布局文件的名称(全英文小写,单词间使用_分割)
3)在下方的Root Element栏目中选择要使用的布局后点击Finish按键完成创建

给某个布局或控件起一个id
android:id="@+id/text1"

参照物和控件的区别是啥???

在某个参照物的右边
android:layout_toRightOf="@id/text1"
在某个参照物的左边
ndroid:layout_toLeftOf="@id/text1"
在某个参照物的下面
android:layout_below="@id/text1"
在某个参照物的上面
android:layout_above="@id/text1"

父控件的中间
android:layout_centerInParent="true"
在父控件的水平中心
android:layout_centerHorizontal="true"
在父控件的垂直中心
android:layout_centerVertical="true"

对齐父控件的左边
android:layout_alignParentLeft="true"
对齐父控件的右边
android:layout_alignParentRight="true"
对齐父控件的顶端
android:layout_alignParentTop="true"
对齐父控件的底部
android:layout_alignParentBottom="true"

对齐某个控件的左边/右边
android:layout_alignLeft="@id/btn1"
android:layout_alignRight="@id/btn1"
对齐某个控件的顶端/底部
android:layout_alignTop="@id/btn1"
android:layout_alignBottom="@id/btn1"

【设置要使用的布局文件】
1.进入src---MainActivity
2.在onCreate方法里,有一个setContextView方法

Tips:
1.如果程序确定没有错误,项目还是有红叉,需要点击Project --- Clean 清理项目后再运行。
2.android:text="你好2" 直接在双引号中写显示的文字即可,黄线不需要关注。
3.无论操作什么软件,都养成点击Ctrl + S的习惯

【如何按照比例布局?】
线性布局支持比例划分的。
//共同作用分宽度
android:layout_width="0dp"
android:layout_weight="2"

【布局嵌套】
布局之间可以嵌套,对于外层的布局而言,内层的布局也相当于一个控件。
理论上布局可以嵌套任意层次,但是为了性能起见,应该尽可能的少用嵌套。

【TextView 文本显示控件】
设置显示文字
android:text="我今晚想吃卷饼"

如果给TextView设置比较大的宽度和高度时,文字默认在左上。
可以通过设置重力方向来控制文字的位置。
android:gravity="center"

设置文字大小(单位使用sp)
android:textSize="10sp"

设置为浏览器的超链接
android:autoLink="web"

【Button 按钮】
Button是TextView的子类,拥有TextView的绝大多数属性。

另外身为一个子类,Button也对其父类TextView做出了一些改动。
例如:文字默认居中,增加了按钮的点击效果。

【ImageView  图片显示控件】
功能用于显示图片

设置显示的图片
android:src="@drawable/sdust"

图片命名规则:
1.不允许数字开头
2.不允许大写英文
3.不允许中文和特殊的符号