IT评测·应用市场-qidao123.com
标题:
Android studio学习之路(一)--基本组件的使用
[打印本页]
作者:
熊熊出没
时间:
2025-3-7 10:51
标题:
Android studio学习之路(一)--基本组件的使用
Android studio学习之路(一)–基本组件的使用
启程之旅
本人从客岁开始学习Android的开发,岂论是网上的教程还是课本上的知识,与现版本的Android开发语言还是有部分差别的,所以我也在不停的报错中寻找错误,不停的完善,希望把这些记录下来,为后来人节流时间。
本次的内容
对Android studio的基本组件做一个大抵的先容,枚举出一些新手常出现的问题并给出改正发起
TextView
,Android页面基本的文本;
Button
, android页面中的基本的交互组件;
ImageView
,Android页面中的图片内容;
EditText
,android页面中的输入框
RadioButton
,单选按钮,如(男女选项);
媒介
(1)本文必要肯定的Java语言基础,发起学习完Java的基础语法后再来学习会更加简单
(2)Android studio的安装与新项目标创建没有太大变换,这里不做多赘述
一、TextView(文本框)
这是一个基础的文本框
<?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:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity2">
<TextView
android:id="@+id/tv4"
android:layout_width="276dp"
android:layout_height="202dp"
android:layout_marginStart="76dp"
android:layout_marginTop="284dp"
android:text="hello world"
android:textColor="#6576BD"
android:textSize="60sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
复制代码
本次为完整代码,为保证精确性,此后只体现组件代码和核心代码
#
这是上述代码所展示的结果
(1)笔墨、笔墨颜色、巨细
<TextView
android:id="@+id/tv1" //组件的ID
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Demo TextView" //TextView的文字
android:textColor="#5731F0" //TextView的文字的颜色
android:textSize="20sp" //TextView的文字的大小
android:layout_marginBottom="10dp"/>
//复制的时候删除后面的注释(包括这行)
复制代码
(2)控制文本始终在页面内
<TextView
android:id="@+id/tv2"
android:layout_width="100dp" //TextView组件的宽度
android:layout_height="wrap_content"
android:maxLines="1" //只能显示1行
android:ellipsize="end" //缩略的形式
android:text="Demo TextView"
android:textColor="#6576BD"
android:textSize="20sp"
android:layout_marginBottom="10dp"/>
//复制的时候删除后面的注释(包括这行)
复制代码
多出的代码的含义:
android:layout_width=“100dp” //TextView组件的宽度
android:maxLines=“1” //只能体现1行
android:ellipsize=“end” //缩略的形式
(3) 中划线、下划线
中划线和下划线只能在模拟器中体现,并且必要Java代码的辅助
xml代码块:
<TextView
android:id="@+id/tv4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello world"
android:textColor="#6576BD"
android:textSize="20sp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginBottom="10dp"/>
<TextView
android:id="@+id/tv5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello world"
android:textColor="#6576BD"
android:textSize="20sp"
app:layout_constraintTop_toBottomOf="@id/tv4"
app:layout_constraintStart_toStartOf="parent"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="118dp" />
复制代码
Java代码块:
import android.graphics.Paint;
import android.os.Bundle;
import android.widget.TextView;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
TextView tv4,tv5; //定义组件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv4=findViewById(R.id.tv4); //找到组件对应的ID
tv5=findViewById(R.id.tv5); //找到组件对应的ID
tv4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//设置中划线
tv4.getPaint().setAntiAlias(true);//去掉锯齿
tv5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//设置下划线
}}
复制代码
Java代码中记得把相应的库引用上。
体现的结果如下:
二、Button(按钮)的应用
(1)button的基础性子
<Button
android:id="@+id/bt1" <!-- 按钮的ID -->
android:layout_width="134dp" <!-- 按钮的宽度 -->
android:layout_height="105dp" <!-- 按钮的高度 -->
android:background="#FFFF00" <!-- 按钮的背景颜色 -->
android:text="按钮1" <!-- 按钮上显示的文字 -->
android:textColor="#22B8DD" <!-- 文字的颜色 -->
android:textSize="20sp" <!-- 文字的大小 -->
tools:layout_editor_absoluteX="80dp" <!-- 设计时在布局编辑器中的X轴位置 -->
tools:layout_editor_absoluteY="327dp" /> <!-- 设计时在布局编辑器中的Y轴位置 -->
//复制的时候删除后面的注释(包括这行)
复制代码
这是上述代码的页面结果
(2)页面的互动
(1)按钮点击后体现当前操作
xml代码:
<Button
android:id="@+id/bt7"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginBottom="15dp"
android:onClick="showToast"
android:text="按钮6"
android:textColor="#0968F7"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
复制代码
这是页面的体现
Java代码块:
public void showToast(View view){
Toast.makeText(this,"按钮6被点击了", Toast.LENGTH_SHORT).show();
}
复制代码
结果图放上,当点击按钮6时会出现Toast提示:
(2)Intent跳转
这里只是与Button组件进行简单教程,之后会有单独一篇先容Intent的使用
main1.xml的代码:
<Button
android:id="@+id/bt5"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginBottom="184dp"
android:onClick="showToast"
android:text="按钮5"
android:textColor="#0968F7"
android:textSize="20sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent" />
复制代码
activity main1的核心代码:
Button btn5 = findViewById(R.id.bt5);
btn5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, MainActivity2.class);
startActivity(intent);
}
});
复制代码
main2.xml的代码:
<TextView
android:id="@+id/tv4"
android:layout_width="276dp"
android:layout_height="202dp"
android:layout_marginStart="76dp"
android:layout_marginTop="284dp"
android:text="成功跳转"
android:textColor="#6576BD"
android:textSize="60sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
复制代码
activity2的java代码:
public class MainActivity2 extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main2);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
}
}
//这里只是正常代码,创建新activity后不变即可
复制代码
点击按钮5后:
得到此页面,体现跳转成功。
三、ImageView的用法
<ImageView
android:id="@+id/iv1"
android:layout_width="250dp"
android:layout_height="150dp"
android:background="#FF9900"
android:src="@drawable/jordan"
//图片资源的地址,需要事先复制到项目的文件夹下面,然后进行引用即可
android:layout_marginBottom="15dp"
android:scaleType="fitXY"/> //缩放类型
复制代码
这里为图片一样平常的存储文件夹
android:src=“@drawable/jordan”
@为项目下文件夹的名称
/后面为图片的名称一样平常为 名称.png(png有时可省略)
四、EditText的用法
EditText的用处黑白常广泛的,登录页面的输入框,和微信的聊天的聊天框,都是基于这个组件。
(1)EditText的基础性子
<EditText
android:id="@+id/ed1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="15dp"
android:inputType="number" <!-- 输入数据的类型,此处设置为数字 -->
android:textSize="16sp" <!-- 设置输入文字的大小 -->
android:textColor="#ff0033" <!-- 设置输入文字的颜色 -->
android:hint="用户名" <!-- 输入框中的提示文字,输入内容后消失 -->
/>
<EditText
android:id="@+id/ed2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ed1"
android:inputType="numberPassword" <!-- 输入数据的类型,此处设置为数字密码 -->
android:textSize="16sp"
android:textColor="#ff0033"
android:hint="密码" <!-- 输入框中的提示文字 -->
/>
此为教程使用,不能直接复制
复制代码
以下为具体代码;
<EditText
android:id="@+id/ed1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名"
android:inputType="number"
android:textColor="#ff0033"
android:textSize="16sp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="16dp" />
<EditText
android:id="@+id/ed2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:inputType="numberPassword"
android:textColor="#ff0033"
android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@+id/ed1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="15dp" />
复制代码
以下为结果体现图:
(2)一个简单的登录页面
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:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity2">
<EditText
android:id="@+id/ed1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名"
android:inputType="number"
android:textColor="#ff0033"
android:textSize="16sp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="16dp" />
<EditText
android:id="@+id/ed2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:inputType="numberPassword"
android:textColor="#ff0033"
android:textSize="16sp"
app:layout_constraintTop_toBottomOf="@+id/ed1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="15dp" />
<Button
android:id="@+id/bt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="点击进行登录"
android:textColor="#ffffff"
android:textSize="15sp"
app:layout_constraintTop_toBottomOf="@id/ed2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="16dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
复制代码
java代码:
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Color;
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 MainActivity2 extends AppCompatActivity {
Button bt;
EditText ed1;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
bt=findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Toast.makeText(MainActivity2.this,"登陆成功",Toast.LENGTH_SHORT).show();
}
});
ed1=findViewById(R.id.ed1);
ed1.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("edittext",charSequence.toString());
}
@Override
public void afterTextChanged(Editable editable) {
}
});
}
}
复制代码
页面体现:
这里可以结合上面Button+intent做一个可跳转的登录页面,有兴趣的学者可以去试试
知识链接:可以通过学习数据库知识对用户暗码进行生存,也可以去做一个忘记暗码功能。
五、RadioButton按钮
(1)基本性子
(1)起首直接放代码了解一下RadioButton的使用属性
<RadioButton
android:id="@+id/rd1" //ID
android:layout_width="wrap_content" //宽度
android:layout_height="wrap_content" //长度
android:text="男" //单选按钮对应的文字
android:textSize="20sp" //文字的大小
android:textColor="#4444BB"/> //文字的颜色
复制代码
(2)正式使用
RadioButton可以进行单选
<RadioButton
android:id="@+id/rb2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="是否同意用户协议"
android:checked="true"
android:textSize="20sp"
android:textColor="#A344BB"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="16dp"
android:layout_marginStart="16dp" />
复制代码
也可以进行组合使用:
xml代码:
<!-- 性别选择的 RadioGroup -->
<RadioGroup
android:id="@+id/rg_gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintTop_toBottomOf="@+id/rb_agreement"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="30dp">
<!-- 男 RadioButton -->
<RadioButton
android:id="@+id/rb_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:checked="true"
android:textSize="20sp"
android:textColor="#A344BB" />
<!-- 女 RadioButton -->
<RadioButton
android:id="@+id/rb_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:textSize="20sp"
android:textColor="#A344BB" />
</RadioGroup>
复制代码
六、未来的规划
本次的文章就更新到这,未来会出更多的教程,也会把我所遇见的报错及解决方法讲出来,感谢各人的支持。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/)
Powered by Discuz! X3.4