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界面,我意识到我应该把我的界面设计能力水平再提升一个,因为实在是丑啊!贴一些以前的设计: 现在看来,是不能看的了.我主要是做需求设计,后面也有一些美工的工作,我 ...
随机推荐
- faiss索引基于数量级和内存限制的选择
它是一个能使开发者快速搜索相似多媒体文件的算法库.而该领域一直是传统的搜索引擎的短板.借助Faiss,Facebook 在十亿级数据集上创建的最邻近搜索(nearest neighbor search ...
- 好用的截图picpick工具,无需注册,无需破解
链接:https://pan.baidu.com/s/1KtgF2wPdbRXAAenvrPiPzA 提取码:vasu
- vue项目锚点的使用
在vue项目中如何使用锚点呢? 在vue-router中定义 scrollBehavior scrollBehavior (to, from, savedPosition) { if (savedPo ...
- Codeforces Round #542 [Alex Lopashev Thanks-Round] (Div. 1) C(二分+KMP)
http://codeforces.com/contest/1129/problem/C #include<bits/stdc++.h> #define fi first #define ...
- 基于django的博客系统
这是前段代码 达到的效果并不是太好,但我还是要发出来,有更好的建议可以和我讨论 后台还算可以 添加了分类和文章两个功能,还在优化,敬请期待....
- kafka创建会话,报Error while executing topic command : Replication factor: 1 larger than available brokers: 0.
bin/kafka-topics.sh --create --zookeeper es1:2181 --replication-factor 1 --partitions 1 --topic top ...
- Node.js 薄荷网爬取
Node.js:是一个基于前端的服务器,主要的特点:单线程,异步I/O(对这个没有了解,开发起来真的会踩很多坑),事件驱动 前言:本人主要是一个以使用.Net平台下的语言,进行开发的一个菜鸡,之前面试 ...
- R语言读取JSON数据
- nginx访问502 gateway,*1 connect() failed (111: Connection refused) while connecting to upstream
安装好nginx,php环境后,配置虚拟主机,结果访问后就报502 gateway,查看日志文件后,显示错误如下: 2019/04/29 16:24:39 [error] 19433#19433: * ...
- servlet3异步原理与实践
一.什么是Servlet servlet 是基于 Java 的 Web 组件,由容器进行管理,来生成动态内容.像其他基于 Java 的组件技术一样,servlet 也是基于平台无关的 Java 类格式 ...