Android:week 5總結 Android佈局三

目錄

 

約束佈局

1.TextView用法

2.Button點擊事件

①在Button指定onCLick事件

②匿名類方法添加事件

③實現接口


約束佈局

 

1.TextView用法

android:ellipsize="end"  //內容不能完全顯示時,在末尾以省略號顯示
android:lines="3"        //文本只能顯示三行

Drawable:是“可以繪製的東西”的一般抽象。 大多數情況下,您將使用Drawable作爲繪製事物到屏幕上的資源的類型; Drawable類提供了一個通用的API來處理可能採取各種形式的底層視覺資源。 與視圖不同,Drawable沒有任何接收事件或與用戶交互的功能。

app——>res——>drawable——>new——>drawable resource file   命名爲border_style

shape用法

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke android:color="#f0f" android:width="2sp" ></stroke>
    <corners android:radius="4sp"></corners>
</shape>
<?xml version="1.0" encoding="utf-8"?>

<!--約束佈局-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tool="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    tool:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:text="微 信"
        android:textSize="20sp"
        android:gravity="center"
        android:drawableTop="@mipmap/wx1"
        android:layout_marginLeft="20sp"
        android:layout_marginTop="20sp">
    </TextView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv2"
        app:layout_constraintLeft_toRightOf="@+id/tv1"
        app:layout_constraintTop_toTopOf="@+id/tv1"
        android:text="電 話"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_marginLeft="20sp"
        android:drawableTop="@mipmap/tx1">
    </TextView>
    <TextView
        android:layout_width="150sp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/tv1"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginLeft="20sp"
        android:lines="1"
        android:ellipsize="end"
        android:text="textviewlalalalalalala"
        android:textSize="20sp"
        android:textStyle="bold|italic"
        android:background="@drawable/border_style">
    </TextView>
</androidx.constraintlayout.widget.ConstraintLayout>

 

2.Button點擊事件

①在Button指定onCLick事件

在MainActivity.java中添加方法。

首先添加兩個包

import android.view.View;
import android.widget.Button;

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<!--約束佈局-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tool="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    tool:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:text="微 信"
        android:textSize="20sp"
        android:gravity="center"
        android:drawableTop="@mipmap/wx1"
        android:layout_marginLeft="20sp"
        android:layout_marginTop="20sp">
    </TextView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv2"
        app:layout_constraintLeft_toRightOf="@+id/tv1"
        app:layout_constraintTop_toTopOf="@+id/tv1"
        android:text="電 話"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_marginLeft="20sp"
        android:drawableTop="@mipmap/tx1">
    </TextView>
    <TextView
        android:id="@+id/tv3"
        android:layout_width="150sp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/tv1"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginLeft="20sp"
        android:lines="1"
        android:ellipsize="end"
        android:text="textviewlalalalalalala"
        android:textSize="20sp"
        android:layout_marginTop="50sp"
        android:textStyle="bold|italic"
        android:background="@drawable/border_style">
    </TextView>

    <Button
        android:id="@+id/bt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@+id/tv3"
        app:layout_constraintLeft_toLeftOf="@+id/tv3"
        android:text="OK"
        android:textSize="20sp"
        android:onClick="onClick">
    </Button>

    <Button
        android:id="@+id/bt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="@id/bt1"
        app:layout_constraintLeft_toRightOf="@id/bt1"
        android:text="NO"
        android:textSize="20sp"
        android:onClick="onClick">
    </Button>
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    private Button bt1,bt2;
    private  int btnumber=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = findViewById(R.id.bt1);
        bt2 = findViewById(R.id.bt2);
    }
    public void onClick(View v) {   //通過View確定哪一個控件
        switch (v.getId()) {
            case R.id.bt1:
                //可以來回進行切換
                if(bt1.getText().toString().equals("OK")) {
                    bt1.setText("OK id clicked.");
                    bt1.setTextSize(10);   // 單位是sp
                }
                else {
                    bt1.setText("OK");
                    bt1.setTextSize(20);   // 單位是sp
                }
                break;
            case R.id.bt2:
                if(bt2.getText().toString().equals("NO")) {
                    bt2.setText("NO id clicked.");
                    bt2.setTextSize(10);   // 單位是sp
                }
                else {
                    bt2.setText("NO");
                    bt2.setTextSize(20);   // 單位是sp
                }
                break;
        }
    }

}

 

②匿名類方法添加事件

匿名類方法需要多次構造匿名函數,比較麻煩。

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>

<!--約束佈局-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tool="http://schemas.android.com/tools"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    tool:context=".MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:text="微 信"
        android:textSize="20sp"
        android:gravity="center"
        android:drawableTop="@mipmap/wx1"
        android:layout_marginLeft="20sp"
        android:layout_marginTop="20sp">
    </TextView>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv2"
        app:layout_constraintLeft_toRightOf="@+id/tv1"
        app:layout_constraintTop_toTopOf="@+id/tv1"
        android:text="電 話"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_marginLeft="20sp"
        android:drawableTop="@mipmap/tx1">
    </TextView>
    <TextView
        android:id="@+id/tv3"
        android:layout_width="150sp"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@id/tv1"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginLeft="20sp"
        android:lines="1"
        android:ellipsize="end"
        android:text="textviewlalalalalalala"
        android:textSize="20sp"
        android:layout_marginTop="50sp"
        android:textStyle="bold|italic"
        android:background="@drawable/border_style">
    </TextView>

    <Button
        android:id="@+id/bt1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@+id/tv3"
        app:layout_constraintLeft_toLeftOf="@+id/tv3"
        android:text="OK"
        android:textSize="20sp"
        android:onClick="onClick">
    </Button>

    <Button
        android:id="@+id/bt2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="@id/bt1"
        app:layout_constraintLeft_toRightOf="@id/bt1"
        android:text="NO"
        android:textSize="20sp"
        android:onClick="onClick">
    </Button>

    //下面兩個控件沒有點擊事件
    <Button
        android:id="@+id/bt3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toBottomOf="@+id/bt1"
        app:layout_constraintLeft_toLeftOf="@+id/bt1"
        android:text="YES"
        android:textSize="20sp">
    </Button>

    <Button
        android:id="@+id/bt4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintTop_toTopOf="@id/bt3"
        app:layout_constraintLeft_toRightOf="@id/bt3"
        android:text="Ignore"
        android:textSize="20sp">
    </Button>
</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
    private Button bt1,bt2,bt3,bt4;
    private  int btnumber=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = findViewById(R.id.bt1);
        bt2 = findViewById(R.id.bt2);
        bt3 = findViewById(R.id.bt3);
        bt4 = findViewById(R.id.bt4);
        //匿名類   不方便太麻煩了
        bt3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(bt3.getText().toString().equals("YES")) {
                    bt3.setText("YES id clicked.");
                    bt3.setTextSize(10);   // 單位是sp
                }
                else {
                    bt3.setText("YES");
                    bt3.setTextSize(20);   // 單位是sp
                }
            }
        });
        bt4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(bt4.getText().toString().equals("Ignore")) {
                    bt4.setText("Ignore id clicked.");
                    bt4.setTextSize(10);   // 單位是sp
                }
                else {
                    bt4.setText("Ignore");
                    bt4.setTextSize(20);   // 單位是sp
                }
            }
        });
    }
    public void onClick(View v) {   //通過View確定哪一個控件
        switch (v.getId()) {
            case R.id.bt1:
                //可以來回進行切換
                if(bt1.getText().toString().equals("OK")) {
                    bt1.setText("OK id clicked.");
                    bt1.setTextSize(10);   // 單位是sp
                }
                else {
                    bt1.setText("OK");
                    bt1.setTextSize(20);   // 單位是sp
                }
                break;
            case R.id.bt2:
                if(bt2.getText().toString().equals("NO")) {
                    bt2.setText("NO id clicked.");
                    bt2.setTextSize(10);   // 單位是sp
                }
                else {
                    bt2.setText("NO");
                    bt2.setTextSize(20);   // 單位是sp
                }
                break;
        }
    }

}

 

③實現接口

製作動圖一直不成功,頭大...    早睡身體好,所以還是不做了,趕緊整理完

MainActivity.java:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private Button bt1,bt2,bt3,bt4;
    private  int btnumber=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        bt1 = findViewById(R.id.bt1);
        bt2 = findViewById(R.id.bt2);
        bt3 = findViewById(R.id.bt3);
        bt4 = findViewById(R.id.bt4);
        //匿名類   不方便太麻煩了
        bt3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(bt3.getText().toString().equals("YES")) {
                    bt3.setText("YES id clicked.");
                    bt3.setTextSize(10);   // 單位是sp
                }
                else {
                    bt3.setText("YES");
                    bt3.setTextSize(20);   // 單位是sp
                }
            }
        });
        //bt3.setOnClickListener(new View.OnClickListener() {
        //    private int num =0;
        //    @Override
        //    public void onClick(View v) {
        //        bt3.setText("確定"+String.valueOf(num++));
        //        bt3.setTextSize(20);
        //    }
        //});
        bt4.setOnClickListener(this);
    }
    public void click(View v) {   //通過View確定哪一個控件
        switch (v.getId()) {
            case R.id.bt1:
                //可以來回進行切換
                if(bt1.getText().toString().equals("OK")) {
                    bt1.setText("OK id clicked.");
                    bt1.setTextSize(10);   // 單位是sp
                }
                else {
                    bt1.setText("OK");
                    bt1.setTextSize(20);   // 單位是sp
                }
                break;
            case R.id.bt2:
                if(bt2.getText().toString().equals("NO")) {
                    bt2.setText("NO id clicked.");
                    bt2.setTextSize(10);   // 單位是sp
                }
                else {
                    bt2.setText("NO");
                    bt2.setTextSize(20);   // 單位是sp
                }
                break;
        }
    }
    public void onClick(View v) {
        if(bt4.getText().toString().equals("Ignore")) {
            bt4.setText("Ignore id clicked.");
            bt4.setTextSize(10);   // 單位是sp
        }
        else {
            bt4.setText("Ignore");
            bt4.setTextSize(20);   // 單位是sp
        }
    }

}

 

終於搞完了,最近時間規劃太差了,執行力也不夠高,反思反思...

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章