android总结——2(2)

布局,常用控件(上),资源

一、Android中6种布局以及各自作用

    布局管理器本身并不会显示任何效果,只是可以约束内部控件的排列方式。

线性布局LinearLayout

可以让内部组件按照水平或垂直的方式进行摆放。还可以通过权重的方式让内部组件等 比例摆放。

相对布局RelativeLayout

可以让内部组件相对父容器来进行摆放,还可以相对兄弟组件来摆放。

帧布局FrameLayout

可以让组件一个叠加一个进行摆放。

表格布局TableLayout

可以让组件按照行的方式进行摆放,如果想让一行有多列可以放在TableRaw组件中。

网格布局GridLayout

让组件按照行与列的方式进行摆放。

绝对布局AbsoluteLayout

让组件按照xy的坐标来进行摆放。

二、LinearLayout实现效果以及属性,权重

<!--LinearLayout线性布局

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

xmlns:tools="http://schemas.android.com/tools"

命名空间,只在根布局中使用

android:layout_width="match_parent"布局宽的属性

match_parent指的是充满整个父容器

wrap_content自适应,会根据自身的大小来确定自己的宽或高

android:layout_height="match_parent"布局高的属性

android:orientation="horizontal"

规定内容组件排列方式为水平vertical(垂直)

android:gravity=""

控制内部组件的对齐方式    bottom(底部)|right(右边)

center_vertical(垂直居中)+center_horizontal(水平居中)=center(中心位置)

android:background="@drawable/kugou"为组件添加一个背景-->

android:layout_gravity="left"控制该组件在父容器中的位置

android:id="@+id/tv_show"为组件添加一个id属性

注意:

如果线性布局是垂直走向:

    那么子元素的 android:layout_gravity="top" top和bottom值无效3

注意:

如果线性布局是垂直走向:

那么子元素的android:layout_gravity="top"top和bottom值无效

RelativeLoutay实现效果以及属性,margin和padding的区别

<!--相对兄弟组件:

android:layout_alignBottom="@id/tv_show"和...底部对齐

android:layout_alignLeft="@id/tv_show" 和...左对齐

android:layout_alignRight="@id/tv_show"    和...右对齐

android:layout_alignTop="@id/tv_show"  和...顶部对齐

android:layout_toLeftOf="@id/tv_show" 在...左边8

android:layout_toRightOf="@id/tv_show"    在...右边

android:layout_above="@id/tv_show"        在...上边

android:layout_below="@id/tv_show"        在...下边-->

<!-- margin 组件外边距

android:layout_margin="20dp" 距离上下左右20dp

android:layout_marginLeft="20dp" 距离左边20dp

    android:layout_marginTop="30dp" 距离上边30dp

    android:layout_marginRight="40dp" 距离右边40dp

    android:layout_marginBottom="50dp" 距离下边50dp-->

<!--  margin组件外边距

    android:layout_margin="20dp"      距离上下左右20dp

    android:layout_marginLeft="20dp"    距离左边20dp

android:layout_marginTop="30dp"    距离上边30dp

android:layout_marginRight="40dp"  距离右边40dp

android:layout_marginBottom="50dp"  距离下边50dp-->

<!-- padding 组件内边距

    android:padding="10dp" 距离内部内容上下左右都是10dp

    android:paddingLeft="10dp" 距离内部内容左边的10dp

    android:paddingTop="20dp" 距离内部内容上边的20dp

    android:paddingRight="30dp" 距离内部内容右边的30dp

    android:paddingBottom="40dp" 距离内部内容下边的40dp-->

<!--padding组件内边距

android:padding="10dp"  距离内部内容上下左右都是10dp

android:paddingLeft="10dp"  距离内部内容左边的10dp

android:paddingTop="20dp"  距离内部内容上边的20dp

android:paddingRight="30dp" 距离内部内容右边的30dp

android:paddingBottom="40dp"距离内部内容下边的40dp-->

android中的尺寸(dp,sp,px)

dp:度量单位,用于表示组件的宽或高。

sp:文字的大小单位,用于设置字体的大小。

px:像素点。

View的继承体系

TextView文字组件的使用和属性设置

<TextViewandroid:id="@+id/tv_show"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:padding="10dp"

android:text="哈哈"

android:textColor="#FFFFFF"

android:gravity="center"

android:textSize="40sp"

android:background="#FF6140"

android:drawableTop="@drawable/ic_launcher"

android:drawableLeft="@drawable/ic_launcher"

android:drawablePadding="20dp"/>

Button按钮的继承体系和属性设置

Button继承于TextView,TextView继承于View,View继承于Object

<Button android:id="@+id/btn_register"

    android:layout_below="@id/et_msg"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_margin="20dp"

        android:textColor="#FFFFFF"

        android:textSize="26sp"

        android:background="#468711"

        android:text="注册"/>9

<Buttonandroid:id="@+id/btn_register"

    android:layout_below="@id/et_msg"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_margin="20dp"

android:textColor="#FFFFFF"

android:textSize="26sp"

android:background="#468711"

android:text="注册"/>

EditText输入框组件的属性和使用(内容的长度,文本提示,密码,数字限制),以及获取文本内容

<EditText android:id="@+id/et_msg"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:padding="10dp"

        android:hint="请输入用户名"

        android:textColor="#F84D1E"

        android:layout_margin="10dp"

        android:textSize="20sp"

        android:password="true"

        android:singleLine="true"

        android:digits="asd123."

        android:textColorHint="#57A716"/>

<EditTextandroid:id="@+id/et_msg"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:padding="10dp"

android:hint="请输入用户名"

android:textColor="#F84D1E"

android:layout_margin="10dp"

android:textSize="20sp"

android:password="true"

android:singleLine="true"

android:digits="asd123."

android:textColorHint="#57A716"/>

<!-- android:maxLength="10" 设置输入框中输入的最大内容长度

android:hint="请输入用户名" 设置输入框的提示文字

android:textColorHint="#57A716" 设置输入框中提示文字的颜色

android:password="true" 设置输入框为密码模式,输入的内容会使用星号代替

android:singleLine="true" 设置内容为单行显示

android:numeric="integer" 限制输入内容只能是数字

android:digits="asd123." 限制输入的内容只能是asd123.-->7

<!--android:maxLength="10"设置输入框中输入的最大内容长度

    android:hint="请输入用户名"  设置输入框的提示文字

    android:textColorHint="#57A716"设置输入框中提示文字的颜色

    android:password="true"设置输入框为密码模式,输入的内容会使用星号代替

    android:singleLine="true"设置内容为单行显示

    android:numeric="integer"限制输入内容只能是数字

    android:digits="asd123."限制输入的内容只能是asd123.-->

Java代码:

int count=0;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activti);

//找到输入框

final EditText f = (EditText) findViewById(R.id.et_msg);

              //找到按钮

              final Button ff = (Button) findViewById(R.id.btn_register);

ff.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

String st = f.getText().toString();

System.out.println("-----------onClick----------");

if(count%2==0){

ff.setText("登录"+st);

}else{

ff.setText("注册"+st);

}count++;

}

});

}

intcount=0;

    @Override

    protectedvoidonCreate(BundlesavedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activti);

        //找到输入框

        finalEditTextf=(EditText)findViewById(R.id.et_msg)

//找到按钮

finalButtonff=(Button)findViewById(R.id.btn_register);

        ff.setOnClickListener(newView.OnClickListener() {

            @Override

            publicvoidonClick(Viewv) {

                // TODO Auto-generated method stub

                Stringst=f.getText().toString();

                System.out.println("-----------onClick----------");

                if(count%2==0){

                    ff.setText("登录"+st);

                }else{

                    ff.setText("注册"+st);

                }count++;

            }

        });

    }

10-res/values下可以有的所有资源,以及使用(color string dimen style xml中引用)

//在colors.xml中定义color资源

<color name="withe">#FFFFFF</color>

//在布局中使用

android:textColor="@color/withe"4

//在colors.xml中定义color资源

<colorname="withe">#FFFFFF</color>

//在布局中使用

android:textColor="@color/withe"

//在strings.xml中定义string资源

<string name="et_hint_msg">请输入用户名</string>

//在布局中使用

android:hint="@string/et_hint_msg"4

//在strings.xml中定义string资源

<stringname="et_hint_msg">请输入用户名</string>

//在布局中使用

android:hint="@string/et_hint_msg"

//在dimens.xml中定义字体大小尺寸

<resources>

    <dimen name="et_text_size">20sp</dimen>

</resources>

//在布局中使用

android:textSize="@dimen/et_text_size"1

//在dimens.xml中定义字体大小尺寸

<resources>

<dimenname="et_text_size">20sp</dimen>

</resources>

//在布局中使用

android:textSize="@dimen/et_text_size"

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352