文章目录
目录
2.另其点击后跳转,在MainActivity.java中写入
三、TextView
1.在activity_main.xml写入代码
<Button
android:id="@+id/btn_textview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextView" />
2.另其点击后跳转,在MainActivity.java中写入
package com.zhao.helloworld;
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;//声明
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnTextView = findViewById(R.id.btn_textview);//找到;可以类型转换为BUtton
//添加Button的点击事件
mBtnTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//跳转到TextView演示界面
Intent intent = new Intent(MainActivity.this,TextViewActivity.class);
startActivity(intent);
}
});
}
}
3.添加Activity
注意不要直接把TextView作为名字
创建后打开ActivityManifest.xml看是否添加代码,一般会自动添加
<activity
android:name=".TextViewActivity"
android:exported="false" />
4.样式实现
(1)
在添加代码:
<string name="tv_test1">晴晴在奔跑</string>
在activity_text_view.xml:
<TextView
android:id="@+id/tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tv_test1"
android:textSize="24sp"
android:textColor="#000000"/>
也可直接在text属性写入文字
(2)
设置固定的宽度;最大行数;ellipsize属性
<TextView
android:id="@+id/tv_2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:text="晴晴在奔跑"
android:textSize="24sp"
android:textColor="#000000"
android:layout_marginTop="10dp"
android:maxLines="1"
android:ellipsize="end"/>
(3)
文字+icon 实现:下载图标后,添加至
注意图标大小和命名
<TextView
android:id="@+id/tv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="筛选"
android:textSize="24sp"
android:textColor="#000000"
android:layout_marginTop="10dp"
android:drawableRight="@drawable/icon_arrow_off"
android:drawablePadding="5dp"/>
(4)中划线:tv_4 通过Java代码实现
下划线(2种方式):tv_5 tv_6二者也通过Java代码实现,注意HTML实现时,android:text=“”
<TextView
android:id="@+id/tv_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="晴晴在奔跑"
android:textSize="24sp"
android:textColor="#000000"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/tv_5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="晴晴在奔跑"
android:textSize="24sp"
android:textColor="#000000"
android:layout_marginTop="10dp"/>
<TextView
android:id="@+id/tv_6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="24sp"
android:textColor="#000000"
android:layout_marginTop="10dp"/>
package com.zhao.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.Paint;
import android.os.Bundle;
import android.text.Html;
import android.widget.TextView;
//以上自动生成
public class TextViewActivity extends AppCompatActivity {
private TextView mTV4;
private TextView mTV5;
private TextView mTV6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_text_view);
mTV4 = findViewById(R.id.tv_4);
mTV4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//设置中划线
mTV4.getPaint().setAntiAlias(true);//去除锯齿
mTV5 = findViewById(R.id.tv_5);
mTV5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
mTV6 = findViewById(R.id.tv_6);
mTV6.setText(Html.fromHtml("<u>晴晴在奔跑<u/>"));//HTML代码实现文本加下划线
}
}
(5)
跑马灯:文字多一点,单行,滚动方式,永远滚动,获得焦点
<TextView
android:id="@+id/tv_7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="晴晴在奔跑晴晴在奔跑晴晴在奔跑晴晴在奔跑"
android:textSize="24sp"
android:textColor="#000000"
android:layout_marginTop="10dp"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"/>
四、Button
1.在activity_main.xml再写一个Button
<Button
android:id="@+id/btn_Button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Button"
android:layout_marginTop="10dp" />
2.另其点击后跳转
package com.zhao.helloworld;
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 mBtnButton;//声明
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnButton = findViewById(R.id.btn_Button);//找到
mBtnButton.setOnClickListener(new View.OnClickListener() {//点击事件
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this,ButtonActivity.class);//跳转
startActivity(intent);
}
});
}
}
3、添加activity
4、样式
分别为:4个Button:普通;圆角;边框;点击后改变
1个TextView
activity.button.xml中代码:
<?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="15dp">
<Button
android:id="@+id/btn_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮1"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:background="#FF99AD"/>
<Button
android:id="@+id/btn_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮2"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:background="@drawable/bg_btn2"
android:layout_below="@+id/btn_1"
android:layout_marginTop="10dp"/>
<Button
android:id="@+id/btn_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮3"
android:textSize="20sp"
android:textColor="#000000"
android:layout_below="@id/btn_2"
android:layout_marginTop="10dp"
android:background="@drawable/bg_btn3"/>
<Button
android:id="@+id/btn_4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮4"
android:textSize="20sp"
android:textColor="#000000"
android:layout_below="@id/btn_3"
android:layout_marginTop="10dp"
android:background="@drawable/bg_btn4"
android:onClick="showToast"/>
<TextView
android:id="@+id/tv_1"
android:layout_width="match_parent"
android:layout_height="40dp"
android:text="文字1"
android:textSize="20sp"
android:textColor="#000000"
android:layout_below="@id/btn_4"
android:layout_marginTop="10dp"
android:gravity="center"
android:background="#ACDCD2"/>
</RelativeLayout>
(1)按钮1设置背景时失效,背景色一直无法修改,呈现亮紫色
解决办法:
法1:打开
将其中的
<style
name="Theme.MyApplication"
parent="Theme.MaterialComponents.DayNight.DarkActionBar">
修改为:
<style
name="Theme.MyApplication"
parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">
法2:
将:
<Button
android:id="@+id/btn_1"
改为:
<android.widget.Button
android:id="@+id/btn_1"
原文链接:https://blog.csdn.net/weixin_52089884/article/details/122616834
(2)按钮2圆角设置:
drawable添加
书写代码如下:
shape添加shape属性;solid填充color;corners设置radius圆角
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid
android:color="#9870D4"/>
<corners
android:radius="10dp"/>
</shape>
而后将Button的background="@drawable/bg_btn2"
(3)边框
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke
android:width="3dp"
android:color="#F5C070"/>
<corners
android:radius="10dp"/>
</shape>
(4)点击按钮后改变
Root element为selector;两个item分别写点击和未点击;
<?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="#3333CC"/>
<corners
android:radius="5dp"/>
</shape>
</item>
<item android:state_pressed="false">
<shape>
<solid
android:color="#A0A0E7"/>
<corners
android:radius="5dp"/>
</shape>
</item>
</selector>
设置点击后出现弹窗提示
法1:(参考btn_4)
Button设置onClick属性:android:onClick="showToast";
在ButtonActivity.java中添加showToast方法
public void showToast(View view){
Toast.makeText(this,"btn4被点击了",Toast.LENGTH_SHORT).show();
}
法2:(参考btn_3和tv_1)常用
Button不必设置其他属性
在ButtonActivity.java中
package com.zhao.helloworld;
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 mTv1;
@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,"btn3被点击了",Toast.LENGTH_SHORT).show();
}
});
mTv1 = findViewById(R.id.tv_1);
mTv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(ButtonActivity.this,"tv1被点击了",Toast.LENGTH_SHORT).show();
}
});
}
public void showToast(View view){
Toast.makeText(this,"btn4被点击了",Toast.LENGTH_SHORT).show();
}
}
五、EditText
制作简单登录界面
<?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="15dp">
<EditText
android:id="@+id/et_1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="用户名"
android:textSize="20sp"
android:textColor="#59B8A4"
android:background="@drawable/bg_username"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:drawableLeft="@drawable/icon_user"
android:drawablePadding="5dp"
android:maxLines="1"
android:layout_marginTop="50dp"/>
<EditText
android:id="@+id/et_2"
android:layout_width="match_parent"
android:layout_height="50dp"
android:hint="密码"
android:textSize="20sp"
android:textColor="#59B8A4"
android:layout_below="@id/et_1"
android:layout_marginTop="20dp"
android:maxLines="1"
android:inputType="textPassword"
android:background="@drawable/bg_username"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:drawableLeft="@drawable/icon_password"
android:drawablePadding="5dp" />
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="登录"
android:textSize="20sp"
android:textColor="#FFFFFF"
android:layout_below="@id/et_2"
android:layout_marginTop="40dp"
android:background="@drawable/bg_btn4" />
</RelativeLayout>
package com.zhao.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class EditTextActivity extends AppCompatActivity {
private Button mBtnLogin;
private EditText mETUserName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_edit_text);
mBtnLogin = findViewById(R.id.btn_login);
mBtnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(EditTextActivity.this,"登录成功!",Toast.LENGTH_SHORT).show();
}
});
mETUserName = findViewById(R.id.et_1);
mBtnLogin.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
Log.d("EditTextActivity",charSequence.toString());
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
}
但是监听用户名的输入打印并未实现
六、RadioButton
1.两种样式
注意:
- checked属性使用时需要给RadioButton设置id
- RadioGroup继承自LinearLayout,需要设置orientation
<?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="15dp">
<!--样式1-->
<RadioGroup
android:id="@+id/rg_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<RadioButton
android:id="@+id/rb_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:textSize="20sp"
android:textColor="#4848EB"
android:checked="true"/>
<RadioButton
android:id="@+id/rb_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:textSize="20sp"
android:textColor="#4848EB"/>
</RadioGroup>
<!--样式2-->
<RadioGroup
android:id="@+id/rg_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_below="@id/rg_1"
android:layout_marginTop="40dp">
<RadioButton
android:id="@+id/rb_3"
android:layout_width="60dp"
android:layout_height="30dp"
android:text="男"
android:textSize="20sp"
android:textColor="#000000"
android:checked="true"
android:button="@null"
android:background="@drawable/selector_purple"
android:gravity="center"/>
<RadioButton
android:id="@+id/rb_4"
android:layout_width="60dp"
android:layout_height="30dp"
android:text="女"
android:textSize="20sp"
android:textColor="#000000"
android:layout_marginLeft="30dp"
android:button="@null"
android:background="@drawable/selector_purple"
android:gravity="center"/>
</RadioGroup>
</RelativeLayout>
2.选中时弹出所选
注意:先id找到RadioGroup,再根据其找RadioButton
package com.zhao.helloworld;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class RadioButtonActivity extends AppCompatActivity {
private RadioGroup mRG1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_radio_button);
mRG1 = findViewById(R.id.rg_1);
mRG1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int i) {
RadioButton radioButton = radioGroup.findViewById(i);
Toast.makeText(RadioButtonActivity.this,radioButton.getText(),Toast.LENGTH_SHORT).show();
}
});
}
}