作业——在线学习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都继承于AbsListView14: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图标右边修改
相关文章推荐
- 一些Android(安卓)开源框架简介
- 设置安卓背景图片
- Android GestureDetector使用详解
- Android 线程通信
- Android Studio--活动创建&简单布局
- Android Support Library 23.2.0 Toolbar图标变黑
- Android界面性能调优(转载记录)
- Android MainActivity如何加载BaseActivity的布局
- Android学习第六课 计时器小应用
- 如何修改android工程的包名
- at android.widget.AbsListView$RecycleBin.addScrapView(AbsListView.java:)
- 记一次Android ListView没有成功显示出来的原因
- Action!Call拨打电话(Intent.ACTION.CALL的使用)
- Android Animation(3)-Android的动画框架
- Android基础&进阶
- android开发心得之知识的量变到质变
- Android 之联系人提供程序
- 具有正则表达式的TextView(Linkify)规则
- 获取android屏幕坐标相关
- 利用重写onTouchEvent方法实现view随手指移动效果