1.请说出Android中的五种布局,并介绍作用?

  • FrameLayout(堆栈布局),层叠方式显示,类似于PhotoShop上的层叠图层。
  • LinearLayout(线性布局),将视图以水平或者垂直方式显示。
  • RelativeLayout(相对布局),通过确定两个视图的相对位置进行布局。
  • TableLayout(表格布局),将视图以表格的形式排列。
  • AbsoluteLayout(绝对布局),设置View的绝对坐标。
  • GridLayout(网格布局),和TableLayout布局相似。

2.xmlns:android的值可以任意设置吗?

  • xmlns:android是一个命名空间。
  • 它的值需要以 http://schemas.android.com/apk/res开头
  • android是可以替换的,需要自定义一个attrs.xml文件,然后根据配置变量,即可通过命名空间使用。

3.在RelativeLayout中有一个Button,确定相对于手机屏幕的位置坐标?

  View view=findViewById(R.id.button1);

  int[] locations=new int[2];

  view.getLocationOnScreen(locations);

  int x=locations[0];

  int y=locations[1];

4.如何用Java代码设置组件的值?

  • 需要一个LayoutParams对象
  • 通过LayoutParams的一个addRule方法来设置属性的值

5.如何将布局存成图像?

  • view.setDrawingCacheEnabled方法打开图像缓存
  • view.getDrawingCache获取Bitmap对象
  • Bitmap.compress保存图像
  • 注意:首先需要调用measure和layout方法才能成功获取Bitmap对象。

6.设置渐变背景色的方法?

  • 使用GradientDrawable
  • 渐变的图像来渲染窗口背景

7.如何理解android:layout_weight属性?

  • 用于设置组件的重要程度
  • 重要程度越高,值越低

8.对于android:layout_gravity怎么理解的呢?

  • android:layout_gravity属性指定了当前View在父View中的位置
  • android:layout_gravity属性在水平线性布局中时,值为center不起作用

9.如何重用布局文件?

  • 采用include标签
  • <include android:id="@+id/layout1" layout="layout/mylayout">

10.顶层布局使用FrameLayout好不好?

  • 这是多余的,系统会自动生成一个FrameLayout标签
  • 可以用<merge>代替,merge不会生成任何节点

11.如何查看apk文件中的布局文件源代码呢?

  • 反编译工具
  • 使用AXMLPrinter2工具对XML文件反编译

最新文章

  1. .htaccess基本语法和应用 (2012-11-09 16:13:47)转载▼
  2. JS闭包导致循环给按钮添加事件时总是执行最后一个
  3. 《Windows核心编程》学习笔记(9)– 在win7或者vista系统下提升一个进程的运行权限
  4. TI BLE CC2541的I2C主模式
  5. js判断是不是chrome浏览器
  6. 在JavaScript中实现yield,实用简洁实现方式。
  7. 超大型 LED 显示屏
  8. 关闭C#主窗体弹出是否关闭对话框
  9. Cocos2d-x内存管理解说在ios开发中
  10. 快速部署PostgreSQL
  11. Windows环境下多线程编程原理与应用读书笔记(8)————信号量及其应用
  12. [JavaScript] Cookie,localStorage,sessionStorage概述
  13. Redis 搭建文档,备份及认证
  14. Windows10右键添加&quot;在此处打开命令窗口&quot;
  15. Nginx日志格式log_format详解
  16. Unity调用Windows弹框、提示框(确认与否,中文)
  17. 腾讯云服务器 离线安装最新稳定版MariaDB 10.2.6
  18. titlesplit源码
  19. python帮助信息查看以及笔记
  20. Oracle EBS AR 删除应收发票

热门文章

  1. Linux,MD5
  2. uLua学习之HelloWorld(一)
  3. due to a StackOverflowError. Possible root causes include a too low。。
  4. django orm 多对多自定义第三张表
  5. 《深入理解Java 7核心技术与最佳实践》读书笔记(2) Java语言动态性引言
  6. python-rrdtool
  7. Python基础学习之序列(1)
  8. AttributeError: module &#39;requests&#39; has no attribute &#39;get&#39; 遇到了这个错误,是因为我把python关键字做了包名。。。
  9. 【CCPC-Wannafly Winter Camp Day3 (Div1) F】小清新数论(莫比乌斯反演+杜教筛)
  10. 曲率(Curvature)