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
        }
    }

}

 

终于搞完了,最近时间规划太差了,执行力也不够高,反思反思...

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值