Android应用开发入门01
文件目录
-res 资源文件夹
--drawable 图片,xml文件
--layout 布局文件
--mipmap-hdpi 图片,logo
--AndroidManifest 所有的activity都要在manifest中注册;
布局管理器
线性布局LinearLayout
LinearLayout最常用属性属性 | 描述 |
android:id | 控件标识id |
android:layout_width | 控件宽度 |
android:layout_height | 控件高度 |
android:background | 控件背景(背景色,背景图片) |
android:layout_margin | 控件外边距 |
android:layout_padding | 控件内边距 |
android:orientation | 控件方向,只有线性布局才有这个属性 |
属性值:
android:layout_weight="wrap_content" 包含内容,控件中内容多大,控件就多大;
android:layout_weight="match_parent" 匹配父控件,匹配上一级控件的大小;
android:layout_width="200dp" 在Android常使用dp做单位,字体使用sp做单位;
<View></View> 所有控件的一个父类;
<LinearLayout> 默认使用水平排列也就是android:orientation="horizontal"
android:gravity:内部元素摆放的对齐方式
android:layout_weight:元素权重,元素在父控件中除了自身长宽后的占比。
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 android:orientation="vertical"
8 tools:context=".MainActivity">
9
10 <LinearLayout
11
12 android:layout_width="200dp"
13 android:layout_height="200dp"
14 android:orientation="vertical"
15 android:background="#000000"
16 android:paddingLeft="20dp"
17 android:paddingRight="30dp"
18 android:paddingTop="50dp"
19 android:paddingBottom="10dp"
20 android:layout_marginBottom="20dp">
21 <View
22 android:layout_width="match_parent"
23 android:layout_height="match_parent"
24 android:background="#FF0000"
25 />
26
27 </LinearLayout>
28 <LinearLayout
29 android:layout_width="match_parent"
30 android:layout_height="200dp"
31 android:orientation="horizontal"
32 android:background="#0000FF"
33 android:layout_marginTop="20dp"
34 android:layout_marginLeft="15dp"
35 android:layout_marginRight="15dp"
36 android:gravity="center">
37 <View
38 android:layout_width="0dp"
39 android:layout_height="200dp"
40 android:background="#00FF00"
41 android:layout_weight="1"/>
42
43 <View
44 android:layout_width="0dp"
45 android:layout_height="200dp"
46 android:background="#FF0000"
47 android:layout_weight="2"/>
48
49 <View
50 android:layout_width="0dp"
51 android:layout_height="200dp"
52 android:background="#0000FF"
53 android:layout_weight="1"/>
54 </LinearLayout>
55
56 </LinearLayout>
相对布局RelativeLayout
RelativeLayout最常用属性属性 | 描述 |
android:layout_toLeftOf | 在谁的左边 |
android:layout_toRightOf | 在谁的右边 |
android:layout_alignBottom | 跟谁底部对齐 |
android:layout_alignparentBottom | 跟父控件底部对齐 |
android:layout_below | 在谁的下面 |
1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 tools:context=".MainActivity">
8
9 <View
10 android:id="@+id/view_1"
11 android:layout_width="100dp"
12 android:layout_height="100dp"
13 android:background="#000000"
14 />
15 <View
16 android:id="@+id/view_2"
17 android:layout_width="100dp"
18 android:layout_height="100dp"
19 android:background="#0000FF"
20 android:layout_toRightOf="@id/view_1"/>
21 <View
22 android:id="@+id/view_3"
23 android:layout_width="100dp"
24 android:layout_height="100dp"
25 android:background="#00FF00"
26 android:layout_below="@id/view_1"/>
27 <LinearLayout
28 android:layout_width="match_parent"
29 android:layout_height="100dp"
30 android:layout_below="@id/view_3"
31 android:background="#FF0000"
32 android:orientation="horizontal"
33 android:padding="15dp">
34 <View
35 android:layout_width="100dp"
36 android:layout_height="match_parent"
37 android:background="#00FF00"
38 />
39 <RelativeLayout
40 android:layout_width="match_parent"
41 android:layout_height="match_parent"
42 android:background="#FFFF00"
43 android:padding="15dp">
44 <View
45 android:id="@+id/view_4"
46 android:layout_width="100dp"
47 android:layout_height="match_parent"
48 android:background="#00FFFF"
49 />
50 <View
51 android:id="@+id/view_5"
52 android:layout_width="100dp"
53 android:layout_height="match_parent"
54 android:background="#FF00FF"
55 android:layout_toRightOf="@id/view_4"
56 android:layout_marginLeft="10dp"
57 />
58 </RelativeLayout>
59 </LinearLayout>
60
61 </RelativeLayout>
TextView
文字大小,颜色
显式不下使用...
1 android:ellipsize="end"
文字+icon
1 <TextView
2 android:id="@+id/textview_3"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:text="@string/tv_1"
6 android:textColor="#FF0000"
7 android:textSize="30sp"
8 android:layout_marginTop="10dp"
9 android:drawableRight="@drawable/Android_32"
10 android:drawablePadding="5dp"/>
中划线,下划线
1 import android.graphics.Paint;
2 import android.support.v7.app.AppCompatActivity;
3 import android.os.Bundle;
4 import android.widget.TextView;
5
6 public class TextViewActivity extends AppCompatActivity {
7
8 private TextView mTv4;
9 private TextView mTv5;
10 @Override
11 protected void onCreate(Bundle savedInstanceState) {
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.activity_text_view);
14 mTv4 = findViewById(R.id.textview_4);
15 mTv4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//中划线
16 mTv4.getPaint().setAntiAlias(true);//去除锯齿
17 mTv5 = findViewById(R.id.textview_5);
18 mTv5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
19 }
20 }
跑马灯
1 <TextView
2 android:id="@+id/textview_7"
3 android:layout_width="wrap_content"
4 android:layout_height="wrap_content"
5 android:text="我喜欢猪猪我喜欢猪猪我喜欢猪猪我喜欢猪猪我喜欢猪猪我喜欢猪猪!"
6 android:ellipsize="marquee"
7 android:marqueeRepeatLimit="marquee_forever"
8 android:singleLine="true"
9 android:textColor="#FF0000"
10 android:textSize="30sp"
11 android:layout_marginTop="10dp"
12 android:focusable="true"
13 android:focusableInTouchMode="true"/>
声明Activity:
1 <activity android:name=".TextViewActivity"></activity>
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:orientation="vertical"
6 android:padding="10dp">
7
8 <TextView
9 android:id="@+id/textview_1"
10 android:layout_width="wrap_content"
11 android:layout_height="wrap_content"
12 android:text="@string/tv_1"
13 android:textColor="#FF0000"
14 android:textSize="30sp"/>
15
16 </LinearLayout>
1 import android.content.Intent;
2 import android.support.v7.app.AppCompatActivity;
3 import android.os.Bundle;
4 import android.view.View;
5 import android.widget.Button;
6
7 public class MainActivity extends AppCompatActivity {
8
9 private Button mBtnTextView;
10 @Override
11 protected void onCreate(Bundle savedInstanceState) {
12 super.onCreate(savedInstanceState);
13 setContentView(R.layout.activity_main);
14 mBtnTextView = findViewById(R.id.btn_textview);
15 mBtnTextView.setOnClickListener(new View.OnClickListener() {
16 @Override
17 public void onClick(View v) {
18 //跳转到TextView演示界面
19 Intent intent = new Intent(MainActivity.this,TextViewActivity.class);
20 startActivity(intent);
21
22 }
23 });
24 }
25 }
Button
文字大小,颜色
1 <Button
2 android:id="@+id/btn-1"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:text="按钮1"
6 android:textSize="20sp"
7 android:textColor="#00FFFF"
8 android:background="#FFFF00"/>
自定义背景形状
实体圆角
1 <?xml version="1.0" encoding="utf-8"?>
2 <shape xmlns:android="http://schemas.android.com/apk/res/android"
3 android:shape="rectangle">
4 <solid
5 android:color="#FF9900"/>
6 <corners
7 android:radius="5dp"/>
8
9 </shape>
空心圆角
1 <?xml version="1.0" encoding="utf-8"?>
2 <shape xmlns:android="http://schemas.android.com/apk/res/android"
3 android:shape="rectangle">
4 <stroke
5 android:width="2dp"
6 android:color="#FF9900"/>
7 <corners
8 android:radius="5dp"/>
9
10 </shape>
自定义按压效果
1 <?xml version="1.0" encoding="utf-8"?>
2 <selector xmlns:android="http://schemas.android.com/apk/res/android">
3 <item android:state_pressed="true">
4 <shape>
5 <solid android:color="#123456" />
6 <corners android:radius="5dp"/>
7 </shape>
8 </item>
9 <item android:state_pressed="false">
10 <shape>
11 <solid android:color="#654321" />
12 <corners android:radius="5dp"/>
13 </shape>
14 </item>
15
16 </selector>
点击事件
1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent"
5 android:padding="10dp" >
6 <Button
7 android:id="@+id/btn_1"
8 android:layout_width="match_parent"
9 android:layout_height="wrap_content"
10 android:text="按钮1"
11 android:textSize="20sp"
12 android:textColor="#00FFFF"
13 android:background="#FFFF00"/>
14
15 <Button
16 android:id="@+id/btn_2"
17 android:layout_width="match_parent"
18 android:layout_height="wrap_content"
19 android:text="按钮2"
20 android:textSize="20sp"
21 android:textColor="#00FFFF"
22 android:background="@drawable/bg_btn2"
23 android:layout_below="@id/btn_1"
24 android:layout_marginTop="10dp"/>
25
26 <Button
27 android:id="@+id/btn_3"
28 android:layout_width="match_parent"
29 android:layout_height="wrap_content"
30 android:text="按钮3"
31 android:textSize="20sp"
32 android:textColor="#00FFFF"
33 android:background="@drawable/bg_btn3"
34 android:layout_below="@id/btn_2"
35 android:layout_marginTop="10dp"/>
36
37 <Button
38 android:id="@+id/btn_4"
39 android:layout_width="match_parent"
40 android:layout_height="wrap_content"
41 android:text="按钮4"
42 android:textSize="20sp"
43 android:textColor="#00FFFF"
44 android:background="@drawable/bg_btn4"
45 android:layout_below="@id/btn_3"
46 android:layout_marginTop="10dp"
47 android:onClick="showToast"/>
48
49 </RelativeLayout>
1 package com.example.admin.layouttest;
2
3 import android.support.v7.app.AppCompatActivity;
4 import android.os.Bundle;
5 import android.view.View;
6 import android.widget.Button;
7 import android.widget.Toast;
8
9 public class ButtonActivity extends AppCompatActivity {
10 //声明控件
11 private Button mBtn3;
12 @Override
13 protected void onCreate(Bundle savedInstanceState) {
14 super.onCreate(savedInstanceState);
15 setContentView(R.layout.activity_button);
16 mBtn3 = findViewById(R.id.btn_3);
17 mBtn3.setOnClickListener(new View.OnClickListener() {
18 @Override
19 public void onClick(View v) {
20 Toast.makeText(ButtonActivity.this,"btn3被点击了!",Toast.LENGTH_SHORT).show();
21 }
22 });
23 }
24
25 public void showToast(View view){
26 Toast.makeText(this,"btn4被点击了!",Toast.LENGTH_SHORT).show();
27 }
28 }
来源:oschina
链接:https://my.oschina.net/u/4263502/blog/3590847