您的位置:首页 > 移动开发 > Android开发

作业——在线学习Android课程之第二周

2016-03-13 14:28 387 查看

一、主要知识点及对应课程时间

1. Android开发布局详解

02:40: 介绍五大布局

03:50: 线性布局——常见的布局方式之一,通过orientation属性可以设置线性布局的方向

07:00: layout_weight 属性 ,控制各控件占用屏幕的比例 ,需设置layout_width=”0dp”

12:40: 相对布局——常见布局方式之一,可减少层级。

重要属性:

layout_above——在指定ID的控件之上

layout_below——在指定ID的控件之下

layout_toLeftOf——在指定ID的控件的左边

layout_toRightOf——在指定ID的控件的右边

layout_alignBaseline ——和指定ID控件的baseline对齐

layout_alignBottom ——和指定ID控件的底部边缘

layout_alignLeft——和指定ID的左边缘对齐

layout_alignRight——和指定ID的右边缘对齐

layout_alignTop——和指定ID的顶部边缘对齐

layout_alignParentBottom——如果为true,则该控件的底部与父控件的底部对齐

layout_alignParentLeft——如果为true,该控件的左边与父控件的左边对齐

layout_alignParentRight——如果为true,该控件的右边与父控件的右边对齐

layout_alignParentTop——如果为true,该控件的顶部与父控件的顶部对齐

layout_centerHorizontal——如果为true,该控件置于水平方向的中央

layout_centerInParent——如果为true,该控件置于父控件水平方向和垂直方向的中央

layout_centerVertical——如果为true,该控件置于垂直方向的中央

21:50: layout_margin——设定外边距

23:30: padding——设定内边距

24:30: 帧布局FrameLayout——一层一层地层叠

26:50: 绝对布局AbsoluteLayout——使用绝对坐标,已废弃

27:45: 表格布局——很少用,可使用layout_span=”2”占据两列

2. Android布局技巧与优化

03:40: 布局是如何进行绘制的

06:35: 层次越多越费时,加载速度越慢。官方建议布局最多10层

11:20: 如何减少层级?——利用相对布局替换线性布局

22:00: 一些有用的属性。

< include layout=”@ “/>,可用来引用相同的布局

24:30: 利用< merge/>,在被include引用后该项不会被引用。

26:30: < ViewStub/>,需要时才加载

28:10: 不要嵌套使用多个Layout_weight属性的LinearLayout

Android lint——删除无用的资源

Hierarchy Viewer——分析层级

3-5. 无比重要的ListView(上)(中)(下)

1、在xml代码中加入一个ListView:

< ListView
android:id="@+id/list_functions"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:layout_margin="@dimen/text_distance"
android:divider="@color/white"
android:dividerHeight="0dp">
< /ListView>


2、定制ListView子控件界面,新建list_item.xml

< LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

< TextView
android:id="@+id/textview_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/text_distance"
android:paddingBottom="@dimen/text_distance"
android:textSize="@dimen/text_size_m"/>
< /LinearLayout>


3、新建Adapter,并在设配器中对内容进行更改

public class FunctionAdapter extends ArrayAdapter<Function> {

private int mResourceId;
public FunctionAdapter(Context context, int textViewResourceId, List<Function> objects){
super(context, textViewResourceId, objects);
mResourceId = textViewResourceId;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
Function function = getItem(position);          //获得当前实例
View view;
ViewHolder viewHolder;
if(convertView == null){                //优化,以免反复读取
view = LayoutInflater.from(getContext()).inflate(mResourceId, null);
viewHolder = new ViewHolder();
viewHolder.functionName = (TextView)view.findViewById(R.id.textview_item);
view.setTag(viewHolder);     //将ViewHolder存在View中
} else {
view = convertView;
viewHolder = (ViewHolder)view.getTag();     //重新获取ViewHolder
}
viewHolder.functionName.setText(function.getName());
return view;
}

class ViewHolder{
TextView functionName;
}
}


4、绑定适配器

FunctionAdapter adapter = new FunctionAdapter(MainActivity.this, R.layout.list_item, mFunctionList);
ListView listView = ((ListView)findViewById(R.id.list_functions));
listView.setAdapter(adapter);


5、 添加点击事件

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Function function = mFunctionList.get(position);
Toast.makeText(MainActivity.this, "这里是“" + function.getName() + "”界面~" , Toast.LENGTH_SHORT).show();
}
});


6. GridView和ScrollView

相似之处:GridView和ListView都继承于AbsListView

14:30: 写GridView的xml文件

15:40: 改class文件为Gridview

17:00: numColumns=”2”,即显示2列(此为两者间的区别,ListView不能显示多列)

适合用来图片预览、九宫格等

columnWidth——每列宽度

horizontalSpacing——横向间距

23:30: ScrollView可用来不是列表的内容区滚动,其只支持垂直滚动,HorizontalScrollView支持横向滚动

注意:其只能有一个子控件

29:40: 快捷键如何设置

31:40: SDK可在setting图标右边修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: