第二章 Android UI开发初阶 相关问答

  1. 定义布局的手段有几种?
    答:两种,XML中声明UI元素;运行时实例化布局元素;
  2. android:text属性什么作用?目前我们知道哪些控件中有该属性?
    答:在控件上显示文本
  3. 布局文件在哪个目录下存放?
    答:app/res/layout
  4. 如何将布局文件设置为某个activity的布局?
    答:在mainactivity.java中,更改代码:
 setContentView(R.layout.布局文件id);
  1. 我们自定义的控件的id在哪个文件中?引用系统资源同引用自定义资源的id有什么区别?
    答:R.java;
    引用:@android:id/name;
    自定义:@+id/name;

  2. 如何通过id来引用布局中的对象?为什么通过findViewById这个方法得到的对象要进行类型强转?
    答:R.id.‘对应名称’;
    findViewById获取到的view类型无法自动转换为所需类型;

  3. wrap_content、match_parent这两个值什么含义?
    答:wrap_content:控件显示内容所需的适合空间大小;
    match_parent:父控件相应属性的大小;

  4. view的坐标系是怎样的?
    答: 在这里插入图片描述

  5. LinerLayout中的子元素是如何排列的?方向是怎么确定的?一行排不下,会不会折行?
    答:通过orientation设置排列方式(默认水平);
    自上而下,自左至右;
    不会,(默认处理方式:叠加)

  6. 如何设置子控件的宽度或者高度相同?原理是什么?
    答:通过权重;?

  7. 盒子模型是什么?
    答: margin->border->padding->content;

  8. android:gravity同android:layout_gravity什么区别?
    答:layout_gravity:是该布局对于layout空余空间的利用,权重最大为“1”,默认为“0”,(就是当parent控件的空间未被完全利用时,可以为layout控件的子控件设置layout_gravity属性,增加(减少)其本身的大小)
    gravity:设置控件内容的对齐方式);

  9. RelativeLayout是什么?它中的子控件怎么确定位置?注意这些子控件的属性可取什么值?什么是基线?
    答:相对布局;
    通过父控件或者其他兄弟控件进行定位;
    true/false;
    在这里插入图片描述

  10. TableLayout的父类是哪个?说明什么问题?
    答:LinearLayout,其也可看作线性布局使用;

  11. TableLayout中有多少行是由什么确定的?列是由什么确定的?
    答:TableRow;
    包含最多子元素的TableRow;

  12. TableRow的宽度和高度分别是什么?它中的子控件呢?
    答:宽:match_parent
    高:wrap_content
    子空间均为:wrap_content

  13. TableRow中的子控件在哪列怎么确定?如何跨列?
    答:其由属性Layout_column指定;
    使用属性Layout_span指定跨列数;

  14. GridLayout是什么布局?
    答:网格布局;

  15. GridLayout中的orientation, rowCount 及 columnCount属性是什么含义?
    答:orientation,:控件排列方式;
    rowCount :网格行数;
    columnCount:网格列数;

  16. 如何确定GridLayout中子控件所在的网格?如何将子控件扩展到其他网格?
    答:通过设置layout_column,layout_row;
    设置layout_columnSpan,layout_rowSpan属性,确定该子控件占据多少列或多少行。

  17. 什么是帧布局?、
    答:帧布局为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一帧)。
    采用帧布局设计界面时,只能在屏幕左上角显示一个控件,如果添加多个控件,这些控件会按照
    顺序在屏幕的左上角重叠显示。

  18. 帧布局中的子控件按什么顺序显示?
    答:定义控件的先后顺序;

  19. 绝对布局中的子控件怎么确定位置?它的坐标系是什么?
    答:通过(x,y)坐标设置控件位置;

  20. 像素单位分几大类?每类中的都有哪些单位?
    答:长度单位,in 英寸 (inch),pt 点 (Points),mm (毫米);
    像素单位,px (Pixel),dp (Density-independent Pixels),sp (Scale-independent Pixels);

  21. sp同dp什么区别?px同dp什么关系,针对不同的分辨率的屏幕如何换算?
    答:sp == dp;
    px,对应屏幕上实际像素点 (160dpi的屏幕上,1dp = 1px)

  22. 设置大小的时候为什么dp优于px,什么原理?
    答:dp不会受屏幕大小影响,

  23. 如何在MainActivity.java中设置activity的布局文件
    答:setContentView(R.layout.‘布局名称‘);

  24. 设计布局文件的Design和Text模式什么区别?
    答:design:可视化界面;
    text:代码编辑界面
    (参考WPF中的xaml界面)

  25. layout_toEndOf同layout_toRightOf什么区别?另一对对应的属性是什么?什么区别?它们后面的值中的id前为什么有+?
    答: layout_toEndOf/layout_toRightOf:分别指指定控件的末端和右端;
    layout_toStartOf/layout_toLeftOf:分别指指定控件的始端和左端;
    在R.java文件中添加新的ID;

  26. 如何在工程中修改工程的最小版本?
    答:修改bulid.gradle中的minSDKVersion后边的值;

  27. 水平居中和垂直居中的属性是什么?
    答:layout_centerVertical
    layout_centerHorizontal
    32.如何新建布局文件?布局文件的文件名有什么要求?
    答:在这里插入图片描述
    文件名只能含有小写字母,数字,_;

  28. 线性布局中子控件的对齐是哪个属性?可取什么值?
    答:layout_gravity:left,right,center;

  29. 线性布局的方向由哪个属性决定?可取什么值?默认值是什么?
    答: orientation :horizontal(默认)/vertical

  30. 控件的id可以相同吗?
    答:不可以,

  31. 线性布局能嵌套使用吗?怎么用?
    答:能;

  32. 表格布局中的表行由哪个标签确定?
    答:TableRow;

  33. TableRow的宽度和高度属性是什么?默认值是什么?
    答:layout_width(match_parent);layout_height(warp_content);

  34. stretchColumns,shrinkColumns属性什么意思?
    答:stretchColumns:当本列的定义总长度不足屏幕宽度时,指定列拉伸以充满屏幕
    shrinkColumns:当本列的定义总长度超出屏幕宽度时,指定列缩减跨度以适应屏幕

  35. View是什么?ViewGroup是什么?他们之间什么关系?
    View 是用于创建用户交互组件的小部件的基类 (基本单元),是一块矩形区域
    ViewGroup 对象是一种不可见的容器,可容纳其他 View 控件
    ViewGroup 继承自 View

  36. 什么是代码的格式化的快捷键是什么?
    答:快捷键:CTRL+ALT+F;

  37. 布局文件中哪里找到?布局文件中的标签是怎样的结构?
    答:res/layout文件;
    须符合xml语法结构要求;

  38. 在布局文件中的标签属性中的“android:”是什么?
    答:xmlns:android=“http://schemas.android.com/apk/res/android”(命名空间的引用)

  39. 线性布局是什么意思?它的标签名是什么?
    答:布局中的控件线性排列(根据orientation的取值不同,确定排列方向);
    LinearLayout;

  40. android:orientation这个属性是什么意思?它可取哪些值?
    答:设置线性布局中控件排列方向;
    水平,垂直;

  41. android:layout_width 和 android:layout_height这两个属性是什么意思?它可取什么值?值的含义是什么?
    答:view控件的宽(高)度;
    warp_content;
    match_parent;
    确切数值;

  42. TextView这个标签是什么?
    答:可编辑文字;不可更改;

  43. EditText这个标签是什么?它同TextView什么区别?它的android:hint属性是什么意思?
    答:可编辑文本框;

    当内容为空时;显示的提示字符;

  44. 所有的标签都可以有android:id这个属性,该属性是什么含义,一般如何定义它的值?id的值在哪个java文件中定义的?
    答:控件的唯一标识符;
    根据控件的特征(内容,控件类型…);
    R.java;

  45. string.xml文件是什么文件?它的文件结构是什么样的?什么是键值对?
    答:字符串文件;
    参考样式文件;
    每个字符串(value)都有唯一的键值(key);

  46. android:weight属性什么作用?如何让EditText充满一行中的剩余空间?
    答:设置权重
    设置其属性:weight = 1;

  47. R.java这个文件里都有什么?这个文件能手工修改吗?
    答:项目中所有资源以及其id值;
    不能手动修改;

  48. 什么是样式?主题是什么?同样式什么联系?
    答:样式:设置布局文件的背景外观等,
    主题:整个应用的样式;
    联系:主体应用与所有控件,样式应用与指定的某个view控件;

  49. 样式文件存放在哪里?结构是怎样的?怎么在布局文件中引用样式?
    答:styles.xml文件;

<resources>

    <!-- Base application theme. -->
    <style name="StylesName" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

</resources>

引用:将控件的style值设置为“@styles/stylesname”;
eg:

 <TextView style="@styles/stylename"/>
  1. 样式的继承是什么?如何继承系统样式?如何继承自定义样式?如果某个样式应4. 用到某个view的时候,而这个样式中有View不能支持的属性,会怎么样?
    答:继承:调用项目中已有的样式定义;
    为style标签设置parent ,其值等于项目中已经存在的样式名称;
    自动忽略标签不支持的属性;
  2. 怎么设置样式?如果将样式设置到ViewGroup时,该group中的view会使用该样式吗?
    答:将标签的style属性值设置为已定义的样式名称;
    不会;
  3. manifest文件起什么作用?
    答:清单文件,管理应用在移动设备上的权限;
  4. 如何设置主题?如何微调已有主题?
    答:在清单文件中将application的theme属性值设置为“@styles/stylesname”;
    eg:
<style name="apptheme" parent="’需要微调的主题名称‘"/>
  1. 如何基于不同的平台由系统自动选择不同的主题?
    答:在Resources文件夹下创建一个values-v21子文件夹,然后在该子文件夹下下创建一个styles.xml文件,编辑内容:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <style name="MyTheme" parent="android:Theme.Material.Light.DarkActionBar">
  </style>
  ……
</resources>
			//name值与原有styles文件夹中定义的style name属性值相同;
  1. 为什么要提供对不同语言的支持?
    答:

  2. 怎么创建区域目录?怎么创建不同语言的表现?
    答:

  3. 屏幕大小的分类有哪些?
    答:small,normal,large,xlarge;

  4. 密度的分类有哪些?
    答:Idpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi;

  5. 屏幕的方向有哪些?
    答:landscape(横向),portrait(纵向);

  6. 为什么需要根据屏幕不同来定义不同的布局文件?不同大小屏幕的布局文件怎么存放?
    答:优化用户体验;
    · 存放在同一目录下,文件名相同,主要属性值相同;

  7. 为什么需要根据屏幕密度提供不同的bitmap资源?
    答:优化用户体验(提高图片质量)(该类问题统一可答);

  8. 不同密度的比例是什么?
    答:在这里插入图片描述

  9. 根据按钮上显示的内容,按钮可以分为几种?分别用什么属性设置?
    答:三种;
    文字(text)
    图片(src);
    文字+图片(text设置文本,drawable_____设置图片及图片与文字的相对位置);

  10. 按钮的onClick属性有什么用?它的值所指定的响应方法在哪里定义,有什么特殊要求?法的参数是什么?
    答:添加按钮点击事件(在button类型控件中添加onclick属性,并定义属性值);
    Activity中定义响应事件,
    要求:在Activity类中声明该按钮;

 Button button;

onclick方法中实例化按钮;

  Button button = (Button) findViewById(R.id."按钮id");  

响应时间定义:

 public void click(View view) {       //click:button的onclick属性值;View类型参数;
        button.setText("此按钮已被点击");            
    }
  1. 还可以怎么设置按钮的监听方法?代码模板是什么?望大家理解该模板
    答:
			Button button = (Button) findViewById(R.id.button_send);  
			button.setOnClickListener(new View.OnClickListener() {
    		public void onClick(View v) {
        		// Do something in response to button click
   		 	}
		});
  1. 如何定义按钮的样式?
    答:
  2. 如何定义无边框按钮?
    答:
<Button  style="?android:attr/borderlessButtonStyle"/>
  1. 如何指定输入文本框的类型?如何组合输入模式?
    答:设置属性android:inputType;

  2. 标签属性的值是不是可以通过java代码进行修改?
    答:yes;

  3. landscape和portrait什么区别?
    答:. landscape:横向;
    portrait:纵向;

  4. 如何设置复选框的单击事件处理方法?若干复选框可以用同一个事件处理方法进行处理吗?如何在方法中区分选择的是哪个复选框?
    答:onclick事件;
    可;
    使用view.getid属性;

  5. 如何修改activity的布局?一个activity同时可以有几个布局?
    答:修改onclick方法中的setContentView()的参数值;

  6. 什么是无线按钮?在布局文件中是哪个标签?为什么要把这种标签放在RadioGroup中?RadioGroup是哪个布局的子类,这意味着什么?如何设置无线按钮的默认选择?
    答:单选按钮;
    RadioButton;
    保证同组按钮在同一时刻只有一个可以被选中;
    LinearLayout;
    可以设置控件的orientation属性;

  7. 如何设置无线按钮的单击事件处理方法?
    答:onclick;

  8. 什么是切换按钮?是哪些标签?
    答:标签:ToggleButton,Switch

  9. 定义某个RadioButton的android:checked为true,意味着该项是默认选中的,但如果并没有定义它的id,在运行时会发生什么情况?
    答:RadioButton相互排斥;

  10. .控件的id是什么?
    答:唯一标识;

  11. 注释的快捷键是什么?
    答:C太热了+ /;

  12. Toast是什么?它也是放在布局文件中吗?makeText方法的三个参数什么含义?
    答:提示信息框;
    不是;
    分别是:app的content;
    显示文本信息;
    显示时长;

  13. 什么是context?
    答:上下文;

  14. 如何定义toast的显示?
    答:通过设置其属性:setGravity属性;确定其显示位置;

  15. layout_weight这个属性是什么含义?
    答:其在父控件中的所占比例(宽);

  16. 如何将EditText指定为输入密码类型的数据?.
    答:修改属性:inputType值为:_____Password;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值