欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android实现带头像的用户注册页面

程序员文章站 2024-03-03 22:28:04
1.首先是注册页面的布局:

1.首先是注册页面的布局:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingtop="20px"
android:orientation="horizontal" >
<linearlayout
android:id="@+id/linearlayout1"
android:orientation="vertical"
android:layout_weight="2"
android:paddingleft="20px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<tablelayout
android:id="@+id/tablelayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<tablerow
android:id="@+id/tablerow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<textview
android:id="@+id/textview1"
android:textsize="20px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="用户名:" />
<edittext
android:id="@+id/user"
android:minwidth="400px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</tablerow>
<tablerow
android:id="@+id/tablerow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<textview
android:id="@+id/textview2"
android:textsize="20px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密码:" />
<edittext
android:id="@+id/pwd"
android:inputtype="textpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</tablerow>
<tablerow
android:id="@+id/tablerow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<textview
android:id="@+id/textview3"
android:textsize="20px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确认密码:" />
<edittext
android:id="@+id/repwd"
android:inputtype="textpassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</tablerow>
<tablerow
android:id="@+id/tablerow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<textview
android:id="@+id/textview4"
android:textsize="20px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="e-mail地址:" />
<edittext
android:id="@+id/email"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</tablerow>
</tablelayout>
</linearlayout>
<linearlayout
android:id="@+id/linearlayout2"
android:orientation="vertical"
android:gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_weight="1"
android:layout_height="wrap_content" >
<imageview
android:id="@+id/imageview1"
android:layout_width="158px"
android:layout_height="150px"
android:src="@drawable/ic_launcher" />
<button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="选择头像" />
</linearlayout>
</linearlayout>

效果如下图所示:

Android实现带头像的用户注册页面

2.然后是图库的页面布局,由用户去选择图片,这里我就用windows系统里面的几张照片:

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<gridview
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/gridview"
android:numcolumns="4" />
</linearlayout>

Android实现带头像的用户注册页面

3.然后我们在注册页面的activity写入以下代码:

点击按钮跳转到图库activity页面中:

button button1=(button)findviewbyid(r.id.button1);
button1.setonclicklistener(new view.onclicklistener() {
@override
public void onclick(view v) {
intent intent = new intent(mainactivity.this,headactivity.class);
startactivityforresult(intent,0x11);
}
});

重写

@override onactivityresult方法:
protected void onactivityresult(int requestcode,int resultcode,intent data){
super.onactivityresult(requestcode,resultcode,data);
if(requestcode==0x11&&requestcode==0x11){
bundle bundle=data.getextras();
int imageid=bundle.getint("imageid");
imageview imageview=(imageview)findviewbyid(r.id.imageview1);
imageview.setimageresource(imageid);
}
}

Android实现带头像的用户注册页面

4.在图库activity里面写入以下代码响应用户点击图片并通过intent传递给前一个activity:

gridview gridview=(gridview)findviewbyid(r.id.gridview);
baseadapter adapter=new baseadapter() {
@override
public int getcount() {
return imageid.length;
}
@override
public object getitem(int position) {
return position;
}
@override
public long getitemid(int position) {
return position;
}
@override
public view getview(int position, view convertview, viewgroup parent) {
imageview imageview;
if(convertview==null){
imageview=new imageview(headactivity.this);
imageview.setadjustviewbounds(true);
imageview.setmaxheight(58);
imageview.setmaxwidth(50);
imageview.setpadding(5,5,5,5);
}else{
imageview=(imageview)convertview;
}
imageview.setimageresource(imageid[position]);
return imageview;
}
};
gridview.setadapter(adapter);
gridview.setonitemclicklistener(new adapterview.onitemclicklistener() {
@override
public void onitemclick(adapterview<?> parent, view view, int position, long id) {
intent intent=getintent();
bundle bundle=new bundle();
bundle.putint("imageid",imageid[position]);
intent.putextras(bundle);
setresult(0x11,intent);
finish();
}
});

这里主要是重写getview方法:

Android实现带头像的用户注册页面

5.然后我们点击运行界面如下:

Android实现带头像的用户注册页面

6.我们点击按钮之后跳转activity选择图片头像:

Android实现带头像的用户注册页面

7.然后我们点击一个图片又跳转回去,头像更改:

Android实现带头像的用户注册页面