赞
踩
Project与Module
创建界面
Activity
在手机模拟器端可以看到预览效果,并且显示文字“Hello World!”
。
我们并没有输入文字,这是怎么出现的呢?
当我们在创建项目的时候会默认生成一个XML布局文件activity_main.xml
。
这个XML文件存放在 res\layout
下。
这个XML文件默认添加一段代码:
<Textview
android:layout_width="match_parent"
android:layout_heizht="wrap_content"
android:text="Helle werld!"
android:id="@+id/textview" />
安卓图标,显示安卓开发中常用的工程文件(建议使用的结构)
项目图标,显示整个项目中的所有工程文件
–下列以安卓结构为例分析各个节点的含义–
manifests
,第一个节点,显示安卓的全局描述文件
java
,第二个节点,显示java的源代码文件
res
,第三个节点,显示一些资源文件
常用的布局文件,一些图片资源文件等等
Gradle Scripts
节点,与安卓应用源代码没有关系
manifests
节点一般只存在一个XML全局描述文件
AndroidManifest.xml
XML文件内容
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myfirstapplication"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.MyFirstApplication"> <activity android:name=".MainActivity" android:exported="true" android:label="@string/app_name" android:theme="@style/Theme.MyFirstApplication.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
AndroidManifest.xml
XML文件内容解释
前三行自动生成,可以不用管。
application
标签,用来配置整个应用的属性。
在 application
标签包含一些 activity
标签,用来配置项目中所应用的 activity
。
一般情况下只默认创建一个 MainActivity
。
intent-filter
标签用来将所在 activity
配置为应用程序的入口。
例如在如上xml描述中,当程序运行时,会从被 intent-filter
标记的 MainActivity
进入。
java
节点onCreate
方法很重要。R
文件,通过索引引用这个资源。R
文件失败的情况,我们对项目进行清理就可以成功解决这个bug。res
节点用来显示保存在该节点下的资源文件。
drawable
目录:一般用来放置图片文件。
9 Patch 文件
layout
目录:存储安卓程序当中的布局文件。
用于控制布局显示什么内容。
mipmap
目录:主要是保存项目中应用的启动图标。
模拟手机或者平板等安卓操作系统设备的模拟器。
通过 AVD 作为窗口操作模拟器。
实例:编写开心消消乐的开始游戏界面
界面分析
第一步:创建新模块
Application name:开心消消乐
Module name:自动生成,但是要改成汉语拼音
可能会有的错误提示
Irushd package name: Paekoge segments rmast be of non-zero longth
修改包名,将最后的 .
删去。
选择空模板
第二步:module创建成功,进行修改
activity_main.xml
Hello World
修改为 开心消消乐
。Design
视图,手动拖动文本框到水平居中位置。UI
即用户界面。可以理解为视图。
占据屏幕中的一块矩形区域,负责提供组件绘制和事件处理的方法。
View类位于android.view包中;View类的子类一般都位于android.widget包中。
View 类常用属性:在API文档中寻找
android:id
,用于为组件设置一个唯一的标识。android:background
设置背景,图片或者颜色值。android:padding
用于设置内边距。选择控制UI界面的方法
(1) 使用XML布局控制UI界面 (推荐)
(2) 在Java代码中控制UI界面
(3) 使用XML和Java代码混合控制混合UI界面
(4) 开发自定义的View
使用XML布局控制UI界面
即将控制布局界面的代码写在XML文件当中。
方法步骤
(1) 在Android应用的res/layout目录下编写XML布局文件。
(2) 在Activity中使用以下Java代码显示XML文件中布局的内容。
setContentView(R.layout.activity_main);
activity_main 表示布局页面的名称。
方法步骤的两步一般会自动生成。
实例:使用XML布局文件实现游戏的开始界面
创建新模块。
将准备好的背景图片复制到 res\mipmap 目录中。
修改布局文件 activity_main.xml
。
(1) 修改布局管理器:将布局管理器修改为帧布局管理器 FrameLayout。
(2) 设置背景属性,添加图片。
设置文本框的内容、大小、颜色。
设置内容使用字符串变量来实现。
在 MainActivity.java 中引用布局文件。
参考点
案例
通过 RelativeLayout
标签定义相对布局管理器
补充提供的属性:ReLativeLayout.LayoutParams
指定组件相对于参考点位置的四个属性
(1) android:layout_above
(2) android: layout_below
(3) android: layout_toLeftof
(4) android: layout_toRightof
设置组件与布局管理器哪边对齐(布尔类型)
(1) android: layeut_alignParentBottom
(2) android: layout__alignParentLeft
(3) android: layout_alignParentRight
(4) android: iayout_alignParentTop
设置组件与哪个组件的边界对齐
(1) android: layout_alignBottom
(2) android: layout_alignLeft
(3) android: layout_alignRight
(4) android: layout_alignTop
设置组件位于布局管理器的哪个位置
(1) android: layout_centerHorizontal
(2) android: layout_centerInParent
(3) android: layout_centerverticai
≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡
//+++添加部分+++ @Override public void onClick(View v) { switch (v.getId()){ // v.getId()获得当前组件的id值 case R.id.myClick: myClick(v); break; case R.id.sure: btnOperateList(v); break; case R.id.write: btnEditList(v); break; } } private void initData(Cursor cursor){ mDatas.clear(); while(cursor.moveToNext()){ DataBean dataBean = new DataBean(cursor.getString(cursor.getColumnIndex("_id")), cursor.getString(cursor.getColumnIndex("name")), cursor.getString(cursor.getColumnIndex("tel")),cursor.getString(cursor.getColumnIndex("groupName"))); mDatas.add(dataBean); } } /** * 编辑、取消编辑 * @param view */ public void btnEditList(View view) { mAdapter.flage = !mAdapter.flage; if (mAdapter.flage) { write.setText("取消"); title.setText("批量删除"); sure.setVisibility(View.VISIBLE); } else { write.setText("编辑"); title.setText("通讯录"); sure.setVisibility(View.GONE); } mAdapter.notifyDataSetChanged(); } /** * 删除选中数据 * @param view */ public void btnOperateList(View view) { if (mAdapter.flage) { for (int i = 0; i < mDatas.size(); i++) { if (mDatas.get(i).isCheck) { dbHelper.del(Integer.parseInt(mDatas.get(i).id)); } } Cursor cursor=dbHelper.query(); initData(cursor); mAdapter = new MyAdapter(MainActivity.this, mDatas); MainActivity.this.listView.setAdapter(mAdapter); mAdapter.flage=true; btnEditList(view); } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。