【智能家居】
主要任务:
1.Linux服务器部署
2.上位机(控制端)程序开发
【集成开发环境】
Eclipse,原因是方便配置无需下载sdk。
AS也可以。
Eclipse启动程序的路径大概是:
你的路径\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\adt-bundle-windows-x86_64-20140321\eclipse\eclipse.exe
【通信原理】
Socket通信:
服务器使用C语言、App使用的Java。
服务器使用结构体通信,Java没有结构体。
怎么办呢?
【项目结构】
src文件夹:存放java代码的文件夹
gen文件夹:系统自动生成的java文件,不要修改。
bin文件夹:程序编译运行后,生成的apk安装包在此文件夹下生成。
libs文件夹:存放jar包的文件夹(本次实训会引入第三方的jar包)
res文件夹:主流资源文件夹
drawable文件夹:存放图片
layout文件夹:布局文件夹
AndroidManifest.xml:清单文件,用于配置项目参数
【新建项目的要求】
1.进入到src—包名—MainActivity.java文件中,删部分代码:
//位于onCreate方法中
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container, false);
return rootView;
}
}
在MainActivity.java文件中的onCreate方法里,修改setContentView的参数为:
R.layout.activity_main → R.layout.fragment_main
3.删除layout文件夹中的activity_main.xml
4.选中项目,鼠标右键—Run As — Android Application
【自动补全快捷键】
Eclipse Alt + /
AS Alt + Enter
【布局】
//给控件起id
android:id="@+id/text1"
//宽度
android:layout_width=“match_parent”
//高度
android:layout_height=“match_parent”
宽度和高度的可选值:
1.match_parent 匹配父级
2.wrap_content 匹配子级
3.fill_parent 不用,等同match_parent
4.可以使用固定数值,单位是dp
//背景
android:background="#56BB34"
内边距 padding
android:padding=“50dp”
另外可以单独设置上下左右的内边距
外边距 margin
android:layout_margin=“40dp”
另外可以单独设置上下左右的外边距
线性布局(LinearLayout)
控件横着或者竖着排成一排。
//方向
android:orientation=“horizontal”
可选值:
horizontal 水平的
vertical 垂直的
//子控件的重力方向
android:gravity=“right|center_vertical”
可选值:
left(左,默认值)、top(上,默认值)、right(右)、bottom(底)、
center_horizontal(水平中心)、center_vertical(垂直中心)、center(正中心)
相对布局(RelativeLayout)
某个控件相对某个参照物在某个位置。
参照物必须要有id
//在text1控件的右边
android:layout_toRightOf="@id/text1"
//在text1控件的左边
android:layout_toLeftOf="@id/text1"
//在text1控件的上面
android:layout_above="@id/text1"
//在text1控件的下面
android:layout_below="@id/text1"
//对齐text1控件的四个方向
android:layout_alignRight="@id/text1"
android:layout_alignBottom="@id/text1"
android:layout_alignLeft="@id/text1"
android:layout_alignTop="@id/text1"
//对齐父控件的四个方向
android:layout_alignParentBottom=“true”
android:layout_alignParentTop=“true”
android:layout_alignParentLeft=“true”
android:layout_alignParentRight=“true”
//位于父控件中心(正中心、水平中心、垂直中心)
android:layout_centerInParent=“true”
android:layout_centerHorizontal=“true”
android:layout_centerVertical=“true”
【布局嵌套】
一个布局可以成为另一个布局的子布局,内部的布局整体相当于外部的布局中的一个控件。
从理论上讲,嵌套可以任意层,但是在实际开发中建议能不嵌套就不嵌套,因为嵌套会降低程序中的执行效率。
【比例划分】
可以使用线性布局+权重属性两者配合实现控件宽度和高度的比例。
如果线性布局是横向的,那么只能分子控件的宽度;
如果线性布局是纵向的,那么只能分子控件的高度。
上面建议自己想想,不建议死记。
建议给宽度设置权重就把宽度设置为0dp,
建议给高度设置权重就把高度设置为0dp。
//权重
android:layout_weight=“1”
【对齐代码】
Eclipse Ctrl + Shift + F,前提是不要使用国产输入法。
AS Ctrl + Alt + L
【补充视频】
如果感觉今天复习的速度偏快,可以参考下面我的授课视频,速度非常慢。
链接:https://pan.baidu.com/s/1oH45VWBh0ZozXv00ze5H6Q
提取码:lrhg
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享