Android Studio 实现注册界面选择头像功能{记录4}{使用GridView控件}
功能需求:在用户注册界面中,增加头像选择功能
使用GridView控件
1.从用户注册界面,点击选择头像,跳转到头像选择界面
2.头像选择界面中,以网格形式显示系统内置头像
3.在头像选择界面中,点击头像后,返回用户注册界面,并显示所选择的头像
1.创建注册界面的xml文件register.xml
增加选择头像的按钮
代码为:
<?xml version="1.0" encoding="utf-8"?>
效果如图:
2.创建GridView文件activity_grid.xml
用于以网格形式显示图片
代码如下:
<?xml version="1.0" encoding="utf-8"?>
效果图:
3.创建grid_item.xml用于图片展示
代码如下:
<?xml version="1.0" encoding="utf-8"?>
效果图:
4.创建RegActivity.java文件
用于跳转选择界面和获取数据
代码如下:
package com.example.gridviewtest;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.view.ActionMode;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class RegActivity extends AppCompatActivity {
ImageView iv;
Button btn_choose;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
iv=(ImageView) findViewById(R.id.reg_img);
btn_choose=(Button)findViewById(R.id.btn_choose);
btn_choose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent= new Intent(RegActivity.this,MainActivity.class);
startActivityForResult(intent,12);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==12||resultCode==21)
{
iv.setImageResource(data.getIntExtra("img",R.mipmap.f1));
}
}
}
5.创建MainActivity.java
用于将grid_item.xml链接到activity_grid.xml以自动获取图片并显示为网格形式
并且返回数据给RegActivity
代码如下:
package com.example.gridviewtest;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.GridView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
GridView gv;
SimpleAdapter sa;
List
效果如下: