Android 两个Activity之间怎样传递图片 点击图片后图片传给下一个ACtivity。
publicclassshowextendsActivity{privateGridViewgridview;privateImageViewbig_imageView;...
public class show extends Activity {
private GridView gridview;
private ImageView big_imageView;
private ImageAdapter myImageViewAdapter;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private Integer[] mImageIds ={
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
R.drawable.img6,
R.drawable.img7,
R.drawable.img8,
R.drawable.img9,
};
// 内部类的构造方法
public ImageAdapter(Context c){
mContext = c;
}
//返回资源ID数组长度
public int getCount(){
return mImageIds.length;
}
//得到Item
public Object getItem(int position){
return position;
}
//获取Items的ID
public long getItemId(int position){
return position;
}
//获取要显示的View对象
public View getView(int position, View convertView, ViewGroup parent){
ImageView imageView;
if (convertView == null){
//创建一个ImageView
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(80, 80));
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
}
else{
imageView = (ImageView) convertView;
}
//设置图像源于资源ID
imageView.setImageResource(mImageIds[position]);
//创建一个ImageView
return imageView;
}
public Integer getcheckedImageIDPostion(int theindex) {
return mImageIds[theindex];
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gridview = (GridView)findViewById(R.id.gridview);
myImageViewAdapter = new ImageAdapter(this);
gridview.setAdapter(myImageViewAdapter);
gridview.setBackgroundResource(R.drawable.bg0);
//为GridView添加事件监听器
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id){
}
});
}
} 展开
private GridView gridview;
private ImageView big_imageView;
private ImageAdapter myImageViewAdapter;
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private Integer[] mImageIds ={
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
R.drawable.img6,
R.drawable.img7,
R.drawable.img8,
R.drawable.img9,
};
// 内部类的构造方法
public ImageAdapter(Context c){
mContext = c;
}
//返回资源ID数组长度
public int getCount(){
return mImageIds.length;
}
//得到Item
public Object getItem(int position){
return position;
}
//获取Items的ID
public long getItemId(int position){
return position;
}
//获取要显示的View对象
public View getView(int position, View convertView, ViewGroup parent){
ImageView imageView;
if (convertView == null){
//创建一个ImageView
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(80, 80));
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
}
else{
imageView = (ImageView) convertView;
}
//设置图像源于资源ID
imageView.setImageResource(mImageIds[position]);
//创建一个ImageView
return imageView;
}
public Integer getcheckedImageIDPostion(int theindex) {
return mImageIds[theindex];
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gridview = (GridView)findViewById(R.id.gridview);
myImageViewAdapter = new ImageAdapter(this);
gridview.setAdapter(myImageViewAdapter);
gridview.setBackgroundResource(R.drawable.bg0);
//为GridView添加事件监听器
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id){
}
});
}
} 展开
3个回答
2015-02-05 · 知道合伙人数码行家
关注
展开全部
"1、如果是本地res中的资源文件可以用intent.putExtra(""id"", R.id.xxx);传递一个对应的id过去。在新activity中通过id取出图片。getResources().getDrawable(R.id.xxx);
2、如果不是本地资源文件或者adapter中没有存储id,可以把drawable转为bitmap,用intent.putExtra(""bitmap"", bitmap);传递过去。因为intent只能传递实现序列化的类,即继承java 的Serializable接口或者android的Parcelable接口。drawable没有实现该接口所以不能传递。
3、如果是通过线程什么的从网上拉取的图片,可以定义一个下载的工具类,并定义一个static的静态Map集合,每拉取成功一张图片就把该图片存入Map中作为缓存。key是该图片的拉取地址。然后通过intent把地址传递过去。在新activity中通过该工具类取得静态map,并通过传递过来的地址中map中取出该图片。"
2、如果不是本地资源文件或者adapter中没有存储id,可以把drawable转为bitmap,用intent.putExtra(""bitmap"", bitmap);传递过去。因为intent只能传递实现序列化的类,即继承java 的Serializable接口或者android的Parcelable接口。drawable没有实现该接口所以不能传递。
3、如果是通过线程什么的从网上拉取的图片,可以定义一个下载的工具类,并定义一个static的静态Map集合,每拉取成功一张图片就把该图片存入Map中作为缓存。key是该图片的拉取地址。然后通过intent把地址传递过去。在新activity中通过该工具类取得静态map,并通过传递过来的地址中map中取出该图片。"
展开全部
使用Intent:
1、在ImageAdapter中增加一个根据点击位置获取图片资源id的方法:
public int getClickedImageResId(int position){
return mImageIds[position];
}
2、在gridview的setOnItemClickListener中实现值传递:
gridview.setOnItemClickListener(
new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,
View v, int position, long id){
Intent intent = new Intent(show.this, NextActivity.class);
// 第一个参数是key, 第二个参数是要传递的值
intent.putExtra("image_res_id",
myImageViewAdapter.getClickedImageResId(position));
show.this.startActivity(intent);
}
});
3、在NextActivity的onCreate()方法中使用getIntent()方法获取传递的值:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
// 第一个参数是key, 第二个参数是若给定key对应的值不存在则默认的返回值;
int imageResId = getIntent().getIntExtra("image_res_id", -1);
// imageResId就是传递过来的值,可以像ImageAdapter中
// 使用Image一样imageView.setImageResource(imageResId);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
点击图片,然后得到图片的id,之后传那个id就行了。用intent的putextra方法
追问
能麻烦您帮我写一下 发送和接收 具体代码么?我怎么老是系统停止响应?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询