Android 如何按gridview位置提取图像
一切正常,只是图片没有显示 基本适配器:Android 如何按gridview位置提取图像,android,gridview,Android,Gridview,一切正常,只是图片没有显示 基本适配器: public Bitmap getItem(int position) { return bitmaps.get(position); } 活动: Intent i = new Intent(getApplicationContext(), SpcifiesImage.class); // passing array index i.putExtra("id", p
public Bitmap getItem(int position) {
return bitmaps.get(position);
}
活动:
Intent i = new Intent(getApplicationContext(), SpcifiesImage.class);
// passing array index
i.putExtra("id", position);`enter code here`
startActivity(i);
这是我希望图像将:
Intent intent = new Intent(getApplicationContext(), SpcifiesImage.class);
Intent i = getIntent();
// Selected image id
int position = i.getExtras().getInt("id");
CustomGrid imageAdapter = new CustomGrid(mContext);
ImageView imageView = (ImageView) findViewById(R.id.imageView3);
imageView.setImageBitmap(imageAdapter.bitmaps.get(position));
// passing array index
intent.putExtra("mas", massage);
startActivity(intent);
自定义网格:
Context mContext;
private Bitmap btimaprecieve;
List<ParseObject> ParseObjects;
ArrayList<Bitmap> bitmaps;
ParseQuery<ParseObject> query;
ProgressDialog progressDialog;
int size;
public CustomGrid(Context c, ArrayList<Bitmap> bitmaps) {
mContext = c;
this.bitmaps = bitmaps;
}
public CustomGrid(Context mContext) {
}
//---returns the number of images---
public int getCount() {
return bitmaps.size();
}
//---returns the ID of an item---
public Bitmap getItem(int position) {
return bitmaps.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(mContext);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.mobile, null);
// set value into textview
// TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label);
// textView.setText(mobileValues[position]);
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
// imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageBitmap(bitmaps.get(position));
} else {
gridView = (View) convertView;
}
return gridView;
public CustomGrid(Context mContext) {
}
Context-mContext;
私人点阵图;
列出解析对象;
阵列列表位图;
解析查询;
进行对话进行对话;
整数大小;
公共CustomGrid(上下文c、ArrayList位图){
mContext=c;
this.bitmaps=位图;
}
公共自定义网格(上下文mContext){
}
//---返回图像的数量---
public int getCount(){
返回位图。size();
}
//---返回项目的ID---
公共位图getItem(int位置){
返回位图。获取(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)mContext
.getSystemService(上下文布局\充气机\服务);
视图网格视图;
if(convertView==null){
gridView=新视图(mContext);
//从mobile.xml获取布局
gridView=充气机。充气(R.layout.mobile,空);
//将值设置为textview
//TextView TextView=(TextView)gridView.findViewById(R.id.grid\u item\u label);
//setText(mobileValues[position]);
//基于选定文本设置图像
ImageView ImageView=(ImageView)gridView
.findviewbyd(R.id.grid\u item\u image);
//setLayoutParams(新的GridView.LayoutParams(70,70));
//imageView.setScaleType(imageView.ScaleType.CENTER\U裁剪);
setImageBitmap(位图.get(位置));
}否则{
gridView=(视图)convertView;
}
返回gridView;
日志:
进程:com.example.tepper.myapplication,PID:16637
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat,int,java.io.OutputStream)”好的,根据您发布的代码,此部分存在问题: 在自定义网格上:
Context mContext;
private Bitmap btimaprecieve;
List<ParseObject> ParseObjects;
ArrayList<Bitmap> bitmaps;
ParseQuery<ParseObject> query;
ProgressDialog progressDialog;
int size;
public CustomGrid(Context c, ArrayList<Bitmap> bitmaps) {
mContext = c;
this.bitmaps = bitmaps;
}
public CustomGrid(Context mContext) {
}
//---returns the number of images---
public int getCount() {
return bitmaps.size();
}
//---returns the ID of an item---
public Bitmap getItem(int position) {
return bitmaps.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View gridView;
if (convertView == null) {
gridView = new View(mContext);
// get layout from mobile.xml
gridView = inflater.inflate(R.layout.mobile, null);
// set value into textview
// TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label);
// textView.setText(mobileValues[position]);
// set image based on selected text
ImageView imageView = (ImageView) gridView
.findViewById(R.id.grid_item_image);
// imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setImageBitmap(bitmaps.get(position));
} else {
gridView = (View) convertView;
}
return gridView;
public CustomGrid(Context mContext) {
}
构造函数为空,这意味着执行此操作时:
CustomGrid imageAdapter = new CustomGrid(mContext);
ImageView imageView = (ImageView) findViewById(R.id.imageView3);
imageView.setImageBitmap(imageAdapter.bitmaps.get(position));
位图
数组将不会初始化。
您必须将位图数组设置为静态,或将其存储在可从其他活动访问的位置,仅出于测试目的,请执行以下操作:
- 更改CustomGrid上的以下行:
Context mContext; private Bitmap btimaprecieve; List<ParseObject> ParseObjects; ArrayList<Bitmap> bitmaps; ParseQuery<ParseObject> query; ProgressDialog progressDialog; int size; public CustomGrid(Context c, ArrayList<Bitmap> bitmaps) { mContext = c; this.bitmaps = bitmaps; } public CustomGrid(Context mContext) { } //---returns the number of images--- public int getCount() { return bitmaps.size(); } //---returns the ID of an item--- public Bitmap getItem(int position) { return bitmaps.get(position); } @Override public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View gridView; if (convertView == null) { gridView = new View(mContext); // get layout from mobile.xml gridView = inflater.inflate(R.layout.mobile, null); // set value into textview // TextView textView = (TextView) gridView.findViewById(R.id.grid_item_label); // textView.setText(mobileValues[position]); // set image based on selected text ImageView imageView = (ImageView) gridView .findViewById(R.id.grid_item_image); // imageView.setLayoutParams(new GridView.LayoutParams(70, 70)); // imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); imageView.setImageBitmap(bitmaps.get(position)); } else { gridView = (View) convertView; } return gridView;
public CustomGrid(Context mContext) { }
到ArrayList位图;
公共静态ArrayList位图;
- 然后在下一个活动中,按如下方式访问它:
imageView.setImageBitmap(CustomGrid.bitmap.get(position));
CustomGrid
代码。您指的位置,是用户选择的GridView上的图像位置?还是以其他方式获得该位置?我想我没有完全理解您的问题。是吗这是用户在GridView上选择的图像位置…看,用户单击GridView中的某个项目和他单击的图片我想发送另一个活动我在GridView中有图像,但我无法拍摄用户按的图像,此代码不是代码,因为再次运行部门毫无意义I抱歉,我是直到我不知道你在问什么..试着发布你的CustomGrid
类代码和XML布局代码,也许这会澄清你的问题你的编辑被审阅者拒绝了。你必须编辑你的问题,而不是我的答案:)我将其更改为imageView.setImageBitmap(CustomGrid.bitmaps.get(position));但“position”中有错误你得帮我,我两天都不能