APP界面设计大概总结
首先,你得有个Android Studio
其次,你得学会有耐心的对它
最后,要适应它习惯它了解它
来看看APP的基本步骤
先有资源 再是界面布局 下来承载布局Activity 然后些时间逻辑...
本次任务的布局用的是LinearLayout线性布局
从基本控件说起,常用的界面控件还是蛮多的,我们学了其中主要的几个,剩下的就是自己去攻克了。
TextView 控件
常用属性在这里就不写了,本来打字速度就不快,书本上 度公子那里都是能找到的
所以来看它的表现形式就好
<TextView
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/ym1"
android:background="#DBDBDB"
android:gravity="center"
android:text="李易峰的羊毛已上线"
android:textSize="22sp"/>
EditText 控件
常用属性也就不写了
来看看表现形式
<EditText
android:id="@+id/ev_userName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入羊毛通行证"/>
<EditText
android:id="@+id/ev_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入你的密码哦" />
EditText是一个重要的控件,是用户和Android应用进行数据传输的窗户,它是TextView的子类
两者属性基本相似,但TextView是显示文本,无法输入,EditText时输入框。
Button控件
它是一种按钮控件,在该控件上单击,能引发相应事件处理函数
<Button
android:id="@+id/btn_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="进入羊圈中"
android:textSize="20dp"
/>
Button 的使用方法有好几种,大家课本上也是有的,这可是要记住的,你们也都迟早会背过的,我就不详细写了,勤劳点,动动小手。
在这里放个小例子好了
protected void onCreate(Bundle savedInstanceState) {
//onCreate:创建界面上的所有组件,输入框对象,按钮对象,按钮的监听事件
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
evuserName = (EditText) findViewById(R.id.ev_userName);
evpassword = (EditText) findViewById(R.id.ev_password);
btnlogin = (Button) findViewById(R.id.btn_main);
btnlogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String uerName = evuserName.getText().toString();
String password = evpassword.getText().toString();
Toast.makeText(MainActivity.this,"通行证:"+uerName +"密码:"+password,Toast.LENGTH_LONG).show();
}
});
}
以上基本控件运用熟练,一个简单的登录界面也就出来了,其他就自己发挥想象力咯
接下来是个人信息维护界面
布局依旧是那样的线性布局,也同样的用了上述的基本控件,但在那基础上还增加了一些用于显示头像,进行多选或单选的控件。
我想吃饺子
ImageView控件
用于展示图片的控件 可显示静态图片,亦可显示动态图片
那么 常用属性 老规矩 有书的看书,没书的问问度公子,这都是要记得,啊哈
<ImageView
android:layout_width="210sp"
android:layout_height="108sp"
android:layout_gravity="center"
android:src="@drawable/btm1" />
其中关键属性android:src 用于设置在其控件中展示什么图片,可以通过XML或代码赋值,在Android中推荐使用PNG图片。
好想吃甜品
RadioButton控件
此控件是一个单选按钮,用于单选场景,需要同RadioGroup控件一同使用方可实现单选
RadioGroup是单选组合框,在没有它的情况下,RadioButton就可以全部选中了,没有例外,
而在 多个RadioButton被它包含的情况下,RadioButton就只能选一个了...
就像在下面 性别中男和女只能选一个。
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性 别:"
android:textSize="22sp"/>
<RadioGroup
android:id="@+id/rg_sex"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/yy_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:textSize="22sp"/>
<RadioButton
android:id="@+id/yy_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:textSize="22sp"/>
</RadioGroup>
btnConfirm.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
String name = etName.getText().toString();
String sex = "";
int id = rgSex.getCheckedRadioButtonId();
if (id == R.id.yy_male) {
sex = yyMale.getText().toString();
} else if (id == R.id.yy_female) {
sex = yyFemale.getText().toString();
}
那我们上面说了还要实现多选的效果呢,就好像喜欢的东西不会只有一个,在代码中也是必须有多选的
CheckBox控件
此控件可以用于多选的场景,也可用于只有一个选项的情况,如问今天中午买草莓你是否同意
它的关键属性有以下四种
1.android:text:用于设置CheckBox控件提示文字
2.android:checked="true" 用于设置此标签的初始状态为选中
3.isChecked():用于判断按钮是否处于被选中状态
4.setChecked(Boolean flag): 通过传递一个布尔参数来设置按钮的状态
呐呐 就像下面这样
<CheckBox
android:id="@+id/chk_java"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Java"/>
<CheckBox
android:id="@+id/chk_Dance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Dance"/>
<CheckBox
android:id="@+id/chk_Math"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="Math"/>
if (chkJava.isChecked()) {
likedCourses += chkJava.getText().toString() + ",";
}
来来来 让眼睛舒服一下
那么 接下来 回到主题
来看看Android的常用事件
常见事件的说明 老规矩 基本知识 就不用我慢慢打出来了
进入正题 触屏与键盘事件
onTouchEvent事件
它是手机屏幕事件的处理方法应用程序可以通过该方法处理手机屏幕的触摸事件
public boolean onTouchEvent(MotionEvent event) {
一般在Activity类中重写该方法
触屏事件的练习
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
float x = event.getX();
float y = event.getY();
imageView.setPadding((int)x-111,(int)y-211,0,0);
String pos = "x坐标:" + x + "y坐标:" + y;
Toast.makeText(this, pos, Toast.LENGTH_SHORT).show();
}
return super.onTouchEvent(event);
}
键盘事件
它主要用于对键盘事件的监听,根据用户输入内容对键盘事件进行跟踪,也就是去触发事件
它使用View.OnKeyListener接口进行事件处理 定义如下
public class interface View.OnKeyListener{
public boolean OnKey(View.v,int keyCode,KeyEvent event){
}
}
最后的菜单与消息通知
好想吃眼前的面包
菜单
具体使用方法
1.创建布局文件
2.在该布局上加载菜单
public boolean onCreateOptionsMenu(Menu menu) {
//动态添加菜单项
// menu.add(Menu.NONE, Menu.FIRST + 1, 1, "保存").setIcon(android.R.drawable.ic_menu_save);
// menu.add(Menu.NONE, Menu.FIRST + 2, 3, "删除").setIcon(android.R.drawable.ic_menu_save);
// menu.add(Menu.NONE, Menu.FIRST + 3, 2, "打开").setIcon(android.R.drawable.ic_menu_save);
// //2.子菜单
// SubMenu subMenu = menu.addSubMenu("子菜单");
// subMenu.add(0,101,0,"子菜单1");
// subMenu.add(0,102,0,"子菜单2");
//getMenuInflater().inflate(R.menu.main, menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
3.为菜单项注册事件
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case Menu.FIRST + 1:
case Menu.FIRST + 2:
case Menu.FIRST + 3:
Toast.makeText(this, item.getTitle().toString() + "菜单被单击了", Toast.LENGTH_LONG).show();
break;
对话框
Android中主要对话框有以下几种
1.AlertDialog:一个可以拥有0,1,2,或3个按钮的对话框,它里面的内容可以是文本、checkbox,或radio的listview,它是一个进场被用到的dialog。
2.progressdialog:一个窗体内部是progress的dialog,它继承了AlertDialog,所以它拥有的按钮和AlertDialog一样。
3.datepickerdialog:一个提供选择日期功能的dialog
4.timepickdialog:一个提供选择时间功能的dialog
这是书上的基本知识,通过书本了解 我没力气打字了...
然后AlterDialog.Builder类常用方法在书本上也是有的 老规矩 基础知识自己记吧
例子来了...
//创建一个普通的Dialog
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
//给builder设值
builder.setTitle("关于");
builder.setIcon(R.drawable.btm1);
builder.setMessage("版本为1.0");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
});
builder.setNeutralButton("退出", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
MainActivity.this.finish();
}
});
//创建并显示
builder.create().show();
break;
}
return super.onOptionsItemSelected(item);
}
消息通知
咳咳 这里我没印象自己学过,也就不会了,更不会写总结了,那此次任务的总结就暂时到这里了
嗯 辛苦我了 写总结真不容易 想喝粥了