Android应用开发入门01
文件目录
-res 资源文件夹
--drawable 图片,xml文件
--layout 布局文件
--mipmap-hdpi 图片,logo
--AndroidManifest 所有的activity都要在manifest中注册;
布局管理器
线性布局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
属性 | 描述 |
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 }