安卓控件使用
完成ZJGSU_STUDENT网络登录界面的实现,如图所示(仅需要实现网络准入认证系统那个对话框即可)。
要求:
1、用户名输入框中的提示还需要加上自己的学号
2、口令输入框中的提示还需要加上自己的姓名
3、当点击登录按钮时,会跳出TOAST,并显示用户刚输入的用户名
4、当点击取消时,会跳出TOAST,并显示用户刚输入的口令。
布局要求:有背景图片和校徽
一、Layout布局
成品图:
按钮颜色只能通过background更改,在新建的xml里面添加item修改属性
布局代码如下:
- main
<?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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imageView8"
android:layout_width="1348dp"
android:layout_height="800dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/sky" />
<ImageView
android:id="@+id/imageView10"
android:layout_width="338dp"
android:layout_height="294dp"
android:background="@drawable/shape"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/imageView8"
app:srcCompat="@android:color/background_light" />
<TextView
android:id="@+id/a1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="29dp"
android:layout_marginLeft="29dp"
android:layout_marginBottom="29dp"
android:text="网络准入认证系统"
android:textSize="25dp"
android:textStyle="bold"
app:autoSizeTextType="none"
app:layout_constraintBottom_toTopOf="@+id/linearLayout3"
app:layout_constraintStart_toStartOf="@+id/linearLayout3" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="44dp"
android:layout_marginEnd="16dp"
android:layout_marginRight="16dp"
android:background="@drawable/button_shape"
android:shadowColor="#F44336"
android:text="登录"
android:textColor="#000000"
android:textColorHighlight="#000000"
android:textColorHint="@android:color/holo_blue_bright"
android:textColorLink="@color/colorAccent"
app:layout_constraintEnd_toStartOf="@+id/button2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linearLayout3" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="44dp"
android:background="@drawable/button2_shape"
android:text="注销"
android:textColor="#000000"
android:textColorHighlight="#000000"
android:textColorHint="#000000"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/button"
app:layout_constraintTop_toBottomOf="@+id/linearLayout3" />
<LinearLayout
android:id="@+id/linearLayout3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="320dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="@+id/button"
app:layout_constraintTop_toBottomOf="@+id/imageView7">
<LinearLayout
android:layout_width="265dp"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView2"
android:layout_width="42dp"
android:layout_height="45dp"
android:tint="#000000"
app:srcCompat="@android:drawable/ic_dialog_info" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textInputEditText"
android:layout_width="224dp"
android:layout_height="match_parent"
android:background="@drawable/text"
android:hint="请输入用户名:1812190523" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView"
android:layout_width="42dp"
android:layout_height="40dp"
android:layout_weight="0"
android:tint="#000000"
app:srcCompat="@android:drawable/ic_secure" />
<EditText
android:id="@+id/editText4"
android:layout_width="223dp"
android:layout_height="45dp"
android:ems="10"
android:hint="请输入密码:Xusw"
android:inputType="textPassword"
android:background="@drawable/text"/>
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/imageView7"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="48dp"
android:layout_marginLeft="48dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="48dp"
android:layout_marginRight="48dp"
android:layout_marginBottom="17dp"
app:layout_constraintBottom_toTopOf="@+id/linearLayout3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/logo" />
</androidx.constraintlayout.widget.ConstraintLayout>
- button_shape(因为button2_shape只是改了颜色所以在此不再粘贴)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<!-- 圆角的度数-->
<corners android:radius="6dp" />
<!-- 设置按钮中的文字与边框的距离-->
<padding android:bottom="10dp" android:left="20dp" android:right="20dp" android:top="10dp" />
<!-- 背景色-->
<solid android:color="#E33E33" />
<!-- 边框色-->
<stroke android:width="10dp" android:color="#000000" />
</shape>>
</item>
<item >
<shape android:shape="rectangle">
<corners android:radius="8dp"/>
<solid android:color="#3866b2"/>
<stroke android:width="1dp" android:color="#E89C17" />
</shape>
</item>
</selector>
- text
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<!-- 圆角的度数-->
<corners android:radius="2dp" />
<!-- 背景色-->
<solid android:color="#E33E33" />
<!-- 边框色-->
<stroke android:width="1dp" android:color="#000000" />
</shape>>
</item>
<item >
<shape android:shape="rectangle">
<corners android:radius="8dp"/>
<solid android:color="#f9f9f9"/>
<stroke android:width="1dp" android:color="#eaeaea" />
</shape>
</item>
</selector>
- shape
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape android:shape="rectangle">
<!-- 圆角的度数-->
<corners android:radius="0dp" />
<!-- 设置按钮中的文字与边框的距离-->
<padding android:bottom="10dp" android:left="20dp" android:right="20dp" android:top="10dp" />
<!-- 背景色-->
<solid android:color="#E33E33" />
<!-- 边框色-->
<stroke android:width="10dp" android:color="#000000" />
</shape>>
</item>
<item >
<shape android:shape="rectangle">
<corners android:radius="30dp"/>
<solid android:color="#FFFFFF"/>
</shape>
</item>
</selector>
布局思路:
线性对齐图标和文本框,再线性上下对齐用户名和密码。文本框提示内容改hint即可
二、MainActivity活动
根据实验要求,点击登录要回显学号,点击注销要回显姓名。
新建两个监听事件,用Edit Text的getText获取文本
final EditText ed1=(EditText)findViewById(R.id.textInputEditText);
final EditText ed2=(EditText)findViewById(R.id.editText4);
Button button=findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str1=ed1.getText().toString();
Toast.makeText(MainActivity.this,str1,Toast.LENGTH_LONG).show();
}
});
Button button2=findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String str2=ed2.getText().toString();
Toast.makeText(MainActivity.this,str2,Toast.LENGTH_LONG).show();
}
});