小白开发程序之路(2-3)Button(大小、颜色、按压事件、点击事件)
程序员文章站
2022-04-12 08:32:48
小知识配色时点击左边色块可以直接选颜色:类名红色显示有错时鼠标移到那个类名上,按Alt+Enter 导入相应的包Button实战:MainActivity.java:package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;import android.os.Bundle;import android.view....
小知识
- 配色时点击左边色块可以直接选颜色:
- 类名红色显示有错时鼠标移到那个类名上,按Alt+Enter 导入相应的包
Button
实战:
MainActivity.java:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
private Button mbtnTextView;
private Button mbtnButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mbtnTextView=findViewById(R.id.btn_textview);
mbtnTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//跳转至TextView演示界面
Intent intent=new Intent(MainActivity.this,TextViewActivity.class);
startActivity(intent);
}
});
mbtnTextView=findViewById(R.id.btn_button);
mbtnTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//跳转到Button演示界面
Intent intent=new Intent(MainActivity.this,ButtonActivity.class);
startActivity(intent);
}
});
}
}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<Button
android:id="@+id/btn_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView"/>
<Button
android:id="@+id/btn_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Textbutton"/>
</LinearLayout>
ButtonActivity.java:
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class ButtonActivity extends AppCompatActivity {
private Button mbtn3;
private TextView tv1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button);
mbtn3=findViewById(R.id.btn_3);
mbtn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(ButtonActivity.this,"button3被点击了",Toast.LENGTH_LONG).show();
}
});
tv1=findViewById(R.id.tv_1);
tv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(ButtonActivity.this,"tv1被点击了",Toast.LENGTH_LONG).show();
}
});
}
public void showToast(View view){
Toast.makeText(this,"button4被点击了",Toast.LENGTH_LONG).show();
}
}
activity_button.xml:
- btn1 文字大小、颜色
- btn2 自定义背景形状
- btn3 自定义按压事件
- btn4 tv1 点击事件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
<Button
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮1"
android:textSize="30sp"
android:textColor="#3F51B5"
android:background="#FFEB3B"/>
<Button
android:id="@+id/btn_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮2"
android:textSize="35sp"
android:textColor="#7EFFFFFF"
android:layout_below="@id/btn_1"
android:layout_marginTop="10dp"
android:background="@drawable/bg_btn_2" />
<!--新建了一个drawable文件 定义为shape,写为矩形并设置了圆角,填充颜色等属性,
这里的background则直接调用
另外因为是相对布局,所以需要设置相对位置-->
<Button
android:id="@+id/btn_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮3"
android:textSize="35sp"
android:textColor="#9C6AED"
android:layout_below="@id/btn_2"
android:background="@drawable/bg_btn_3"/>
<!--描边带圆角
这个也是有点击事件的,但与btn4不同,
这个的点击事件是在ButtonActivity.java的onclick方法中设置的-->
<Button
android:id="@+id/btn_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮4"
android:textSize="35sp"
android:textColor="#E86767"
android:layout_below="@id/btn_3"
android:background="@drawable/bg_btn_4"
android:onClick="showToast"/>
<!--新建了一个showToast方法赋给了onClick,也就是点击时就会激活showToast,
这个方法需要在ButtonActivity.java中定义
background引用lbg_btn_4,一个新建的drawable文件,是否点击对应两种不同状态-->
<TextView
android:id="@+id/tv_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#000000"
android:textSize="20sp"
android:text="文字"
android:layout_below="@id/btn_4"
android:layout_marginTop="30dp"
android:background="#FFAD33"
android:gravity="center"/>
<!--这个是一个可以被点击的文字,与btn4不同,
这个的点击事件是在ButtonActivity.java的onclick方法中设置的-->
</RelativeLayout>
bg_btn——2.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 矩形-->
<solid
android:color="#51F4E1"/>
<!-- 填充颜色-->
<corners
android:radius="8dp"/>
<!-- 圆角-->
</shape>
bg_btn_3.xml:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- 矩形-->
<stroke
android:width="1dp"
android:color="#FF9900 "/>
<!-- 描边-->
<corners
android:radius="8dp"/>
<!-- 圆角-->
</shape>
bg-btn_4.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#2A9FAE"/>
<corners android:radius="5dp"/>
</shape>
</item>
<!--按压时 -->
<item android:state_pressed="false">
<shape>
<solid android:color="#79EDFD"/>
<corners android:radius="5dp"/>
</shape>
</item>
<!--未按压 -->
</selector>
效果:
本文地址:https://blog.csdn.net/weixin_45941945/article/details/107369811