android面试(1)----布局

1.说出android 五中布局,并说出各自作用?

FrameLayout: 堆叠布局,也是就可以堆在一起。最长应用于Fragment的使用上。

LinearLayout: 线性布局,可以是竖排或水平。

ReleativeLayout:复杂页面一般都会用到,可以通过相对位置,而忽略页面的大小。

absolutlayout:绝对布局:固定x,y的坐标。

Tablayout:用于标签页。

2.xmlns:android="http://schemas.android.com/apk/res/android"

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/btn_start"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/start">
    </Button>

</LinearLayout>

该属性定义了android resource的命名空间。

3.linearlayout 分割线?

android 3.0以上支持分割线:

android:showDividerd.

4.如何确定按钮在手机屏幕的位置?

View.getLocationOnScreen(location);

5.如何不用xml来布局releativeLayout中的view?

可以使用layoutparamters来通过layoutparamters.addrule来设定。

6.Tablelayout如何使用?

Tablelayout 用tablerow来规定每一行,每一行的列数是可以不同的。

7. android:stretchColumns="2" 在tablelayout中

android:stretchColumns="2"表示第二列会撑满剩下的空间。

 8.将布局存为图像!

view.setdrawingcacheenable(true);

view.getDrawingCache();

9.如何设置渐变背景?

颜色渐变的方向由GradientDrawable.Orientation定义可以有如下八种:

mDrawable = new GradientDrawable(GradientDrawable.Orientation.TL_BR,
new int[] { 0xFFFF00000xFF00FF00,
0xFF0000FF });
分别使用Liner,Radial 和Sweep三种渐变模式,并配合指定矩形四个角圆角半径,显示GradientDrawable的不同用法:
mDrawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
setCornerRadii(mDrawable, r, r, 00);
mDrawable.draw(canvas);
10.android:layout_weight的作用?
值越大,重要程度越低。
如果layout_weight一个是1,一个是2,并且width和height都是match_parent则显示2/3 and 1/3
11.dp & sp?
160dpi = 320*480
12.android:layout_gravity and android:gravity的区别?
android:layout_gravity是指View在父控件中的位置,而android:gravity是指内容的位置。
12.如何重用布局文件?
<include android:id="+id/layout1" layout=@layout/myloyout>
13.merge的作用?
merge会过滤掉多余的布局外壳。
14.
 
原文地址:https://www.cnblogs.com/deman/p/4241963.html