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 }
