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>
效果如下图所示:
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>
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); } }
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方法:
5.然后我们点击运行界面如下:
6.我们点击按钮之后跳转activity选择图片头像:
7.然后我们点击一个图片又跳转回去,头像更改: