APP界面设计 大概总结
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);
}
消息通知
咳咳 这里我没印象自己学过,也就不会了,更不会写总结了,那此次任务的总结就暂时到这里了
嗯 辛苦我了 写总结真不容易 想喝粥了
APP界面设计 大概总结的更多相关文章
- 26款能够吸引用户的 iPhone App 界面设计
在这个移动互联网告诉的时代,众多的移动应用程序涌现出来.谁能抓住用户的注意力,谁就有可能成功.在下面这些移动 App 界面设计中,你可以看到不同创意类型的视觉效果,让你获得灵感. 您可能感兴趣的相关文 ...
- APP设计尺寸规范大全,APP界面设计新手教程【官方版】(转)
正值25学堂一周年之际,同时站长和APP设计同仁们在群里(APP界面设计 UI设计交流群,APP界面设计⑥群 APPUI设计③群58946771 APP设计资源⑤群 386032923欢迎大家加入交流 ...
- 最实用的APP界面设计知识,有温度的APP设计(转)
在逛简书的时候,无意之间看到了这样的一篇非常有意思的app设计博文.顾25学堂的摘录了其中的一些关于移动端APP界面设计的精华.分享给25学堂的app设计师们. 当然,下面的这些app设计知识点是来自 ...
- [UI] APP界面设计流程
此教程从交互开始进行APP界面设计,主要是一个流程,还是值得童鞋们学习一下的.包括:1.交互流程设计:2.风格定位:3.功能icon设计:4.界面视效整体优化:5.应用icon设计.
- app界面设计字体规范
通过对不同类型的app进行总结,总结出app的字体规范. 一.字体选择 1.IOS:苹果ios 9系统开始,系统最新的默认中文字体是:苹方.英文字体是: San Francisco 2.Android ...
- 20款优秀的国外 Mobile App 界面设计案例
在下面给大家分享的移动应用程序界面设计作品中,你可以看到不同创意类型的视觉效果.如果你想获得灵感,那很有必要看看下面20个优秀用户体验的移动应用 UI 设计.想要获取更多的灵感,可以访问移动开发分类, ...
- APP界面设计之页面布局的22条基本原则
移动 APP 页面布局(Layout)是我们设计 app 界面的时候,最主要的设计任务.一个 app 的好与不好,很大部分取决于移动 APP 页面布局的合理性. 下图为 APP 最原始的布局模型. 页 ...
- 2013移动APP界面设计趋势与设计理念
用户是上帝,一切还得从应用说起.为此,国外著名的应用设计师Gannon Burgett结合自己多年实战经验归纳总结了2013年App设计发展的13大趋势.我们应该时刻记着这13点. 1.扁平化设计—— ...
- 菜鸟对APP界面设计的一些心得小结
1. 前言 当我看着我以前做的一些app界面,我意识到我应该把我的界面设计能力水平再提升一个,因为实在是丑啊!贴一些以前的设计: 现在看来,是不能看的了.我主要是做需求设计,后面也有一些美工的工作,我 ...
随机推荐
- shell脚本修改文本中匹配行之前的行的方法
原创文件,欢迎阅读,禁止转载. 例子中是把 finish 前一行的 "yes" 改成 "YES"有一个方法就是利用sed+awk一起来完成. zjk@zjk:~ ...
- js:一些基础
JavaScript 基础(一) JavaScript的引入方式 直接编写 <!DOCTYPE html> <html lang="en"> <h ...
- ORM项目中小知识点积累
申明:一下内容均建立在零基础小白的角度上,大佬们求放过~ 1.如何通过类建立外键关联 2.模板语言固定搭配 3.浏览器报错处理 4.后台取值方式 5.外键管理修改相关操作 6.两种(给后台偷偷传递消息 ...
- <Dare To Dream> 第四次作业:基于原型的团队项目需求调研与分析
任务1:实施团队项目软件用户调研活动. (1)真实的用户调研对象:生科院大三学生 (2)利用实验七所开发的软件原型:网站原型链接 (3)要有除原型法之外的其他需求获取手段: 访谈法 开会研讨法 (4) ...
- JVM、redis缓存适用场景
1. 数据状态相对稳定:(针对数据本身)数据修改较少. 2. 输出的数据是相对幂等:(针对业务)多次查询期间,数据不变动.如果查询频率过高,缓存可能没有及时更新. 了解一下redis.ehcache. ...
- 从 TFS 迁移源代码到 git
准备工具: https://github.com/git-tfs/git-tfs 具体的安装步骤上面的 readme.md 中有说明.通过 Chocolatey 安装,如果本地没有 git ,会自动安 ...
- css中有三个显示和隐藏的单词比较常见,display visibility 和 overflow我们需要区分开来
display display 设置或检索对象是否及如何显示 display: none 隐藏对象与它相反的是display:block 除了转换为块级元素之外,同时还有显示元素的意思 特点: 隐藏之 ...
- js----点击事件三种方法
在javascript中,可以为某个元素指定事件,指定的方式有以下三种: 1.在html中,使用onclick属性 2.在javascript中,使用onclick属性 (1)注意函数名没有双引号. ...
- Spring开始
Spring 主要作用:spring的主要作用是解耦,降低代码间的耦合度(指降低类和类之间的耦合度).根据功能的不同,可以将系统中的代码分成主业务逻辑和系统级业务逻辑两类.Spring根据代码功能的特 ...
- C语言基础01
1. 用scanf清理缓冲区数据 scanf("%*[^\n]"); scanf("%*c"); 2. 格式转换 将无符号整型数value转换成字符串并返回该字 ...