个人技术博客Alpha----Android Studio UI学习
项目联系
这次的项目我在前端组,负责UI,下面简略讲下学到的内容和使用AS过程中遇到的一些问题及其解决方法。
常见UI控件的使用
1.TextView
在TextView中,首先用android:id给当前控件定义一个唯一标识符。在活动中通过这个标识符对控件进行事件注册。android:layout_width和
android:layout_height指定了控件的宽度和高度。Android中所有控件都有这两个属性,可选值有match_parent和wrap_content。match_parent表示让当前控件和父布局大小一样,wrap_content表示让当前控件的大小能够刚好包含住里面的内容,也可以通过xxdp来自定义大小。通过android:text可以指定当前文本内容,android:textColor可以指定文字的颜色,android:textSize可以指定文字的大小,android:gravity可以指定文字的对齐方式,这里用的是center,表示水平和垂直方向都居中对齐。
以上是TextView的常用属性。还有android:textStyle可以指定文字的字体,可选值有bold加粗,italic斜体,normal常规,也可以从外部导入自己下载的酷炫字体,不过要在活动里写,这里就不详细说了。
2.Button
Button是程序和用户进行交互的重要控件。Button可配置的属性和TextView差不多,主要是Button里的android:text设置的文字会把所有英文自动进行大写转换,如果我们不想要全部大写,可以通过android:textAllCaps="false"来禁用这个默认特性
3.EditText
EditText是程序和用户进行交互的另一个重要控件,它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理。我们可以使用android:hint属性指定提示文本,当我们输入任意内容时,提示文本会自动消失。在这里EditText指定的高度时wrap_content,它总能包含住里面的内容,但是随着内容的增多EditText会被不断拉长,当内容过多时界面就会很难看,这时候我们可以使用andriod:maxLines属性来指定EditText的行数。当输入的内容超过两行时,文本就会向上滚动,而EditText则不会继续拉伸。
4.ImageView
ImageView是用来在界面上展示图片的控件。需要使用的图片要先放到drawable目录里,然后使用android:src属性指定我们要用的图片。
5.ProgressBar
ProgressBar用于在界面上显示一个进度条,表示我们的程序正在加载一些数据。
我们可以通过style属性将进度条指定成水平进度条,然后我们还可以通过android:max属性给进度条设置一个最大值。然后在代码中动态地更改进度条进度。
6.AlertDialog
AlertDialog可以在当前界面弹出一个置于所有界面元素之上的对话框,能够屏蔽掉其他控件的交互能力,一般用来提示一些重要的内容或者警告信息,比如防止用户误删重要内容,在删除前弹出一个确认框。
常用布局
1.线性布局Linearlayout
- 线性布局是一种很常用的布局,它会将它所包含的控件在线性方向上依次排列,方向有垂直vertical和水平honrizontal两种。方向通过android:orientation属性来设定,如果不指定,默认的排列方式就是horizontal。
在线性布局里我们通过android:layout_gravity指定控件在布局中的对齐方式,可选值和android:gravity差不多。
线性布局里有个属性非常重要————android:layout_weight(权重),通过它我们可以使用比例的方式来指定控件的大小。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/LinearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" > <TextView android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="one" android:background="#98FB98" /> <TextView android:layout_weight="2" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="two" android:background="#FFFF00" /> <TextView android:layout_weight="3" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="three" android:background="#FF00FF" />
2.相对布局Relative
相对布局和线性布局相比显得比较随意,控件可以出现在任意的位置,所以它的属性非常的多,这里贴张菜鸟教程里的学习图
其实layout_marginLeft、 layout_marginStart 、 layout_marginTop三个属性搭配基本就可以任意指定控件的位置了
遇到的错误及解决
1.
有些机子3.0版本的as会出现这个错误,项目刚创建完就报错。具体的原因还不太清楚,网上有人是说图片的合法性检测,可这个项目是空的。。。
Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
Error:Execution failed for task ':app:mergeDebugResources'.> Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
解决很简单,只要在项目的gradle.properties中加入这句代码即可:
android.enableAapt2=false
2.
重新打开我们的项目时,有时候会有莫名报错或者模拟器运行跑不起来,经过检查如果不是语法错误之类的可以先clean project 再rebuild project ,这个方法解决了许多看不懂的报错。。。
收获
通过这个项目接触了as,算是初步认识了一个新工具,还有GitHub的使用。最重要的收获还是因为这个项目真正体验了软件开发的过程,对软件工程有了一个大致的认识。
转载于:https://www.cnblogs.com/noodlehouse/p/7812130.html
个人技术博客Alpha----Android Studio UI学习相关推荐
- 有哪些值得关注的技术博客
大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1.总结知识点相对比较全面 2.一般来说讲解知识 ...
- 有哪些值得关注的技术博客(PHP篇)
有哪些值得关注的技术博客(PHP篇) 路人甲 · 3 个月前 大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些 ...
- 手把手教你写高质量Android技术博客,画图工具,录像工具,Markdown写法
前言 作为程序员,写博客是一件很有意义的事情,可以加深自己对技术的理解,可以结交更多的朋友,记录自己的技术轨迹,而且分享可以让更多的人从中受益,独乐乐不如众乐乐嘛. 但是要写好博客也不是件容易的事,一 ...
- 好的android 相关的技术博客
这些都是很好的android相关的技术博客,赞!发现新的后,继续更新,好资源不能忘记保存啊! http://tech.meituan.com/ http://p.codekk.com/?s=%E5%9 ...
- Android国内优秀技术博客
博主 博客 备注 任玉刚 CSDN博客 深入Android应用开发,深度与广度兼顾 郭霖 CSDN博客 内容实用,行文流畅,高人气博主 夏安明 CSDN博客 张鸿洋 CSDN博客 自定义View系 ...
- 技术博客,从零到数万访问,这两年我都做了什么
作为一名有追求的程序猿,我是不会满足于每天重复性的搬砖和写bug的.为了能够让自己显得更有"价值",我决定去做一件非常有意义的事情,那就是写技术博客.因为我觉得"分享&q ...
- [福大软工] Z班——个人技术博客评分
个人技术博客 作业地址 https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/1070 作业要求 个人技术博客单次作业 ...
- 【压岁干货】精彩技术博客+优秀源码集锦
虽然2015年已经过了一月有余,但在中国,好像只有过了春节才算进入新的一年.眼看着这也春节倒计时了,大家好像又都忙了起来,赶项目赶项目-- 从DevStore整理了一些优秀的技术博客和源码作为新春贺礼 ...
- Netflix 官方技术博客:个性化分发与推荐,走在前列的 Netflix 是怎么做的?
来源:36氪 概要:对于个性化分发与推荐,Netflix都是一个走在前面的公司.其首页的个性化推荐策略不断被后来者所模仿. 对于个性化分发与推荐,Netflix都是一个走在前面的公司.其首页的个性化推 ...
- 程序员常用的六大技术博客类
程序员越来越多,相对应的博客,论坛,社区也乱花渐欲迷人眼,呈现出一个逐渐增长的趋势,以下写的都是一些自己常用的平台,这些平台在百度上面的权重还是很高的,偶尔搜索关键字还能跳出自己写过的博客,于是稍微的 ...
最新文章
- Java调用net的webservice问题分享
- RHEL8 配置光盘源和yum源
- mysql时间变成季度_Mysql 时间操作(当天, 昨天,7 天,30 天, 半年, 全年, 季度)
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 2 Residual Networks
- android标题栏添加按钮_[办公小技巧]Excel 添加页码,自定义和指定单元格页码添加...
- 如何处理error message Invalid parametertype used at function XXXX
- 往事历历在目--我的2009年工作总结
- Fedora17安装QQ2012手记
- python实现自动登录网页用户名密码_Python使用selenium实现网页用户名 密码 验证码自动登录功能...
- jQuery 中console.log什么意思
- python禅语_但行好事,莫问前程,如何理解?
- 计算机考研基本信息,复旦大学计算机考研基本信息
- 《Java零基础入门到精通(集合,泛型,IO,反射,JVM, 源码)【渡一教育】》思维导图版笔记(完结)
- Spring-IoC-03
- js中关于时间的转化——将秒/毫秒转化成xx小时xx分钟xx秒
- Debian安装Python简要说明
- 详解 AJAX-SpringBoot 前后端数据交互
- 我眼中的光明·第三周
- 跑步与不跑步的人,区别,在十年之后 跑者心语
- 乒乓启示录一 - 把简单的动作做到极致就是成功
热门文章
- listitem android,android-为contextmenu标识listitem的ID
- 小票上为啥指甲能划出印_指甲上出现竖纹,除遗传问题,或是身体在向你拉警报了,别忽视...
- php ci 框架 扩展缓存类,CodeIgniter扩展核心类实例详解
- 异或!!不占用额外空间!!
- php如何转类型,PHP数据类型转换
- C++多线程快速入门(二)共享数据同步以及数据竞争
- vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)
- plsql developer无监听程序_微信小程序支持分享到朋友圈啦!技术解读跟我来
- [Beego] [bootstrap-paginator]实现分页功能
- 2014_guangzhou_onsite