Android 本地头像的选取

此处用到了GridView类(GridView(网格视图)是按照行列的方式来显示内容的,一般用于显示图片,图片等内容,比如实现九宫格图,用GridView是首选,也是最简单的)

和适配器BaseAdapter(BaseAdapter就Android应用程序中经常用到的基础数据适配器,)

代码:

MainActivity.java

package com.hpu.headimage;

import com.hpu.model.Registerer;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;


public class MainActivity extends Activity {
	
	final int requestCode=0x11;//requestCode请求码
	private Button register;
	private Button image;
	private String username;
	private String password;
	private String repassword;
	private String email;
	private String Sex;
	public static ImageView headimage=null;
	public static int info=-1;
	private EditText headeditname;
	private EditText headeditmima;
	private EditText headeditremima;
	private EditText headeditemail;
	private RadioGroup radio;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        headimage=(ImageView)findViewById(R.id.headimage);
        if(MainActivity.info!=-1){
        	headimage.setImageResource(MainActivity.info);//
        }
         headeditname=(EditText)findViewById(R.id.headeditname);
         headeditmima=(EditText)findViewById(R.id.headeditmima);
         headeditremima=(EditText)findViewById(R.id.headeditremima);
         headeditemail=(EditText)findViewById(R.id.headeditemail);
        radio = (RadioGroup)findViewById(R.id.sex);

        System.out.println(username+" "+password+" "+email+" "+Sex);
        register = (Button)findViewById(R.id.register);
        image=(Button)findViewById(R.id.image);
        
        
        image.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				Intent intent = new Intent(MainActivity.this,HeadActivity.class);
				
				startActivityForResult(intent, requestCode);
			}
		});
        
        
        
        register.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
		        username=headeditname.getText().toString();
		        password=headeditmima.getText().toString();
		        repassword=headeditremima.getText().toString();
		        email=headeditemail.getText().toString();
				if(!password.equals(repassword)){
					Toast.makeText(MainActivity.this,"两次输入的密码不一样", Toast.LENGTH_SHORT).show();
				}else{
					Intent intent = new Intent(MainActivity.this,RegisterViewActivity.class);
					Registerer r = new Registerer();
			        for(int i=0;i<radio.getChildCount();i++){
			        	RadioButton sex = (RadioButton)radio.getChildAt(i);
			        	if(sex.isChecked()){
			        		Sex=sex.getText().toString();
			        		break;
			        	}
			        }
					r.setEmail(email);
					r.setPassword(password);
					r.setUsername(username);
					r.setSex(Sex);
					intent.putExtra("N", username);
					Bundle bundle = new Bundle();
					bundle.putSerializable("info", r);
					intent.putExtras(bundle);
					startActivityForResult(intent, requestCode);//调用另一个带有返回值的activity
				}
			}
		});
        
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {//对另一个activity返回值的接收
    	// TODO Auto-generated method stub
    	super.onActivityResult(requestCode, resultCode, data);
    	if(requestCode==0x11&&resultCode==0x11){//判断对应的activity的返回,不同activity返回码不一样
    		Bundle b = new Bundle();
    		
    		b=data.getExtras();
    		int imageid=b.getInt("imagenum");
    		info=imageid;
    		headimage.setImageResource(imageid);
    	}
    	else if(requestCode==0x11&&resultCode==0x12){
    		Bundle b = new Bundle();
    		b=data.getExtras();
    		((EditText)findViewById(R.id.headeditmima)).setText("");
    		((EditText)findViewById(R.id.headeditremima)).setText("");
    	}
    }

}



activity_main.xml

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <LinearLayout 
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <TableLayout 
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            >
            <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                >
                <TextView 
                    android:id="@+id/headname"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="用户名:"
                    android:textSize="20sp"
                    />
                <EditText 
                    android:id="@+id/headeditname"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />
            </TableRow>
            <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                >
                <TextView 
                    android:id="@+id/headmima"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="密码:"
                    
                    android:textSize="20sp"
                    />
                <EditText 
                    android:id="@+id/headeditmima"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:inputType="textPassword"
                    />
            </TableRow>
                 <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                >
                <TextView 
                    android:id="@+id/headremima"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="重复密码:"
                    
                    android:textSize="20sp"
                    />
                <EditText 
                    android:id="@+id/headeditremima"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:inputType="textPassword"
                    />
            </TableRow>
                <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                >
                <TextView 
                    android:id="@+id/headsex"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="性别:"
                    android:textSize="20sp"
                    />
                <RadioGroup //单选框组
                    android:id="@+id/sex"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    >
                    <RadioButton 单选框按钮
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="男"
                        />
                    
                     <RadioButton 
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="女"
                        />
                </RadioGroup>
            </TableRow>
                 <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                >
                <TextView 
                    android:id="@+id/heademail"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="邮箱:"
                    android:textSize="20sp"
                    />
                <EditText 
                    android:id="@+id/headeditemail"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    />
            </TableRow>
            <TableRow 
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                >
                <Button 
                android:id="@+id/register"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                
                android:text="注册"
                    />
            </TableRow>
        </TableLayout>
    </LinearLayout>
    <LinearLayout 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:gravity="center_horizontal"
        android:paddingTop="30dp"
        >
        <ImageView 
            android:id="@+id/headimage"
            android:src="@drawable/ic_launcher"
            android:layout_width="60dp"
            android:layout_height="60dp"
            />
        <Button 
            android:id="@+id/image"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="选择头像"
             />
    </LinearLayout>
</LinearLayout>

页面效果:



图片选取:

HeadActivity.java

package com.hpu.headimage;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class HeadActivity extends Activity {

	private GridView grid;//和ListView相似的多控件布局文件,可以实现九宫格图的效果
	private int[] image;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_head);
		
		image = new int[]{
				R.drawable.shanghai_lupu_bridge,R.drawable.tennis,R.drawable.tennis1,
				R.drawable.tennis2,R.drawable.tennis3,R.drawable.tennis4,
				R.drawable.tennis5,R.drawable.tennis6,
		};
		
		grid=(GridView)findViewById(R.id.grid);
		
		BaseAdapter base = new BaseAdapter() {//android中基础的适配器
			
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				// TODO Auto-generated method stub
				ImageView imageview = new ImageView(HeadActivity.this);
				if(convertView==null){
					
					imageview.setAdjustViewBounds(true);
					imageview.setMaxHeight(60);
					imageview.setMaxWidth(60);
					imageview.setPadding(5, 5, 5, 5);
					
				}else{
					imageview = (ImageView)convertView;
				}
				imageview.setImageResource(image[position]);
				return imageview;
			}
			
			@Override
			public long getItemId(int position) {
				// TODO Auto-generated method stub
				return position;
				
			}
			
			@Override
			public Object getItem(int position) {
				// TODO Auto-generated method stub
				return position;
			}
			
			@Override
			public int getCount() {
				// TODO Auto-generated method stub
				return image.length;//图片数量
			}
		};
		
		grid.setAdapter(base);//绑定
		
		grid.setOnItemClickListener(new OnItemClickListener() {//对点击图片事件监听

			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {
				// TODO Auto-generated method stub
				Intent intent = getIntent();
				Bundle b = new Bundle();
				b.putInt("imagenum",image[position]);
				intent.putExtras(b);
				setResult(0x11, intent);
				finish();
				
			}
			
		});
		
	}

}


activity_head.xml

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    xmlns:android="http://schemas.android.com/apk/res/android">
    <GridView 
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10dp"
        android:horizontalSpacing="3dp"
        android:verticalSpacing="3dp"
        android:numColumns="4"
        android:columnWidth="60dp"
        android:gravity="center"
        />
    
</LinearLayou



界面:


选取之后:



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值