项目联系

这次的项目我在前端组,负责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. 有哪些值得关注的技术博客

    大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些博客的特点: 1.总结知识点相对比较全面 2.一般来说讲解知识 ...

  2. 有哪些值得关注的技术博客(PHP篇)

    有哪些值得关注的技术博客(PHP篇) 路人甲 · 3 个月前 大部分程序员在自学的道路上不知道走了多少坑,这个视频那个网站搞得自己晕头转向.对我个人来说我平常在学习的过程中喜欢看一些教程式的博客.这些 ...

  3. 手把手教你写高质量Android技术博客,画图工具,录像工具,Markdown写法

    前言 作为程序员,写博客是一件很有意义的事情,可以加深自己对技术的理解,可以结交更多的朋友,记录自己的技术轨迹,而且分享可以让更多的人从中受益,独乐乐不如众乐乐嘛. 但是要写好博客也不是件容易的事,一 ...

  4. 好的android 相关的技术博客

    这些都是很好的android相关的技术博客,赞!发现新的后,继续更新,好资源不能忘记保存啊! http://tech.meituan.com/ http://p.codekk.com/?s=%E5%9 ...

  5. Android国内优秀技术博客

    博主 博客 备注 任玉刚 CSDN博客 深入Android应用开发,深度与广度兼顾 郭霖 CSDN博客 内容实用,行文流畅,高人气博主 夏安明 CSDN博客   张鸿洋 CSDN博客 自定义View系 ...

  6. 技术博客,从零到数万访问,这两年我都做了什么

    作为一名有追求的程序猿,我是不会满足于每天重复性的搬砖和写bug的.为了能够让自己显得更有"价值",我决定去做一件非常有意义的事情,那就是写技术博客.因为我觉得"分享&q ...

  7. [福大软工] Z班——个人技术博客评分

    个人技术博客 作业地址 https://edu.cnblogs.com/campus/fzu/SoftwareEngineering2015/homework/1070 作业要求 个人技术博客单次作业 ...

  8. 【压岁干货】精彩技术博客+优秀源码集锦

    虽然2015年已经过了一月有余,但在中国,好像只有过了春节才算进入新的一年.眼看着这也春节倒计时了,大家好像又都忙了起来,赶项目赶项目-- 从DevStore整理了一些优秀的技术博客和源码作为新春贺礼 ...

  9. Netflix 官方技术博客:个性化分发与推荐,走在前列的 Netflix 是怎么做的?

    来源:36氪 概要:对于个性化分发与推荐,Netflix都是一个走在前面的公司.其首页的个性化推荐策略不断被后来者所模仿. 对于个性化分发与推荐,Netflix都是一个走在前面的公司.其首页的个性化推 ...

  10. 程序员常用的六大技术博客类

    程序员越来越多,相对应的博客,论坛,社区也乱花渐欲迷人眼,呈现出一个逐渐增长的趋势,以下写的都是一些自己常用的平台,这些平台在百度上面的权重还是很高的,偶尔搜索关键字还能跳出自己写过的博客,于是稍微的 ...

最新文章

  1. Java调用net的webservice问题分享
  2. RHEL8 配置光盘源和yum源
  3. mysql时间变成季度_Mysql 时间操作(当天, 昨天,7 天,30 天, 半年, 全年, 季度)
  4. 吴恩达深度学习课程deeplearning.ai课程作业:Class 4 Week 2 Residual Networks
  5. android标题栏添加按钮_[办公小技巧]Excel 添加页码,自定义和指定单元格页码添加...
  6. 如何处理error message Invalid parametertype used at function XXXX
  7. 往事历历在目--我的2009年工作总结
  8. Fedora17安装QQ2012手记
  9. python实现自动登录网页用户名密码_Python使用selenium实现网页用户名 密码 验证码自动登录功能...
  10. jQuery 中console.log什么意思
  11. python禅语_但行好事,莫问前程,如何理解?
  12. 计算机考研基本信息,复旦大学计算机考研基本信息
  13. 《Java零基础入门到精通(集合,泛型,IO,反射,JVM, 源码)【渡一教育】》思维导图版笔记(完结)
  14. Spring-IoC-03
  15. js中关于时间的转化——将秒/毫秒转化成xx小时xx分钟xx秒
  16. Debian安装Python简要说明
  17. 详解 AJAX-SpringBoot 前后端数据交互
  18. 我眼中的光明·第三周
  19. 跑步与不跑步的人,区别,在十年之后 跑者心语
  20. 乒乓启示录一 - 把简单的动作做到极致就是成功

热门文章

  1. listitem android,android-为contextmenu标识listitem的ID
  2. 小票上为啥指甲能划出印_指甲上出现竖纹,除遗传问题,或是身体在向你拉警报了,别忽视...
  3. php ci 框架 扩展缓存类,CodeIgniter扩展核心类实例详解
  4. 异或!!不占用额外空间!!
  5. php如何转类型,PHP数据类型转换
  6. C++多线程快速入门(二)共享数据同步以及数据竞争
  7. vm磁盘映射 不能启动_Oracle的启动与关闭-数据库(4)
  8. plsql developer无监听程序_微信小程序支持分享到朋友圈啦!技术解读跟我来
  9. [Beego] [bootstrap-paginator]实现分页功能
  10. 2014_guangzhou_onsite