Android 因为高分辨率没有显示在imageview中我不想显示在imageview中我需要在GridView中显示imageview是因为我给了imageview的宽度fiillparent?不知道你的imageview的大小,但是当你的图像分辨率高于你的实际手机分

Android 因为高分辨率没有显示在imageview中我不想显示在imageview中我需要在GridView中显示imageview是因为我给了imageview的宽度fiillparent?不知道你的imageview的大小,但是当你的图像分辨率高于你的实际手机分,android,android-imageview,android-gridview,Android,Android Imageview,Android Gridview,因为高分辨率没有显示在imageview中我不想显示在imageview中我需要在GridView中显示imageview是因为我给了imageview的宽度fiillparent?不知道你的imageview的大小,但是当你的图像分辨率高于你的实际手机分辨率时,你必须调整其大小,而不仅仅是它的显示,实际上,图像是在imageview上设置的,但由于分辨率问题而无法显示,甚至它也无法引发任何异常,因此在运行或调试时不会出现任何错误。它表示无法解决objImageAdapter。。我编辑了我的答案


因为高分辨率没有显示在imageview中我不想显示在imageview中我需要在GridView中显示imageview是因为我给了imageview的宽度fiillparent?不知道你的imageview的大小,但是当你的图像分辨率高于你的实际手机分辨率时,你必须调整其大小,而不仅仅是它的显示,实际上,图像是在imageview上设置的,但由于分辨率问题而无法显示,甚至它也无法引发任何异常,因此在运行或调试时不会出现任何错误。它表示无法解决objImageAdapter。。我编辑了我的答案对吗?@chris:add
ImageAdapter-objImageAdapter
在onCreate之前和onCreate方法中更改
gridView.setAdapter(新的ImageAdapter(this))
to
objImageAdapter=新的图像适配器(此);setAdapter(objImageAdapter)由以下原因引起:java.lang.NullPointerException..at com.example.multiple_gridview.MainActivity$ImageAdapter.getCount(MainActivity.java:113)。。行号113是..return arrayList.size()@克里斯:确定更改
ArrayList ArrayList
to
ArrayList ArrayList=new ArrayList()是否可以打开gallery并选择多个图像并在网格中显示?
public class MainActivity extends Activity {

private static int RESULT_LOAD_IMAGE = 1;
private ImageView imageView;
private Uri selectedImage;
private int columnIndex;
private GridView gridView;
private String picturePath;
private ImageView imageView11;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Button buttonLoadImage = (Button) findViewById(R.id.buttonLoadPicture);
    gridView = (GridView) findViewById(R.id.gridview);
    gridView.setAdapter(new ImageAdapter(this));

    gridView.setOnItemClickListener(new OnItemClickListener() 
    {
        public void onItemClick(AdapterView<?> parent, 
        View v, int position, long id) 
        {                
            Toast.makeText(getBaseContext(), 
                    "pic" + (position + 1) + " selected", 
                    Toast.LENGTH_SHORT).show();
        }
    });        
    buttonLoadImage.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");
            startActivityForResult(intent, 1);
        }
    });
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
        selectedImage = data.getData();
        String[] filePathColumn = { MediaStore.Images.Media.DATA };

        Cursor cursor = getContentResolver().query(selectedImage,
                filePathColumn, null, null, null);
        cursor.moveToFirst();



        imageView = (ImageView) findViewById(R.id.imgView);
        imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));

        columnIndex = cursor.getColumnIndex(filePathColumn[0]);
        String picturePath = cursor.getString(columnIndex);
        objImageAdapter.addToList(picturePath);
        cursor.close();


    }


}

    public class ImageAdapter extends BaseAdapter 
  {
private Context context;
ArrayList<String> arrayList;

public ImageAdapter(Context c) 
{
    context = c;
}

//---returns the number of images---
public int getCount() {
    return arrayList.size();
}

//---returns the ID of an item--- 
public Object getItem(int position) {
    return position;
}

void addToList(String strPath)
{
    this.arrayList.add(strPath);
    this.notifyDataSetChanged();
}
public long getItemId(int position) {
    return position;
}

//In this array you have to store all images path which is you want to display in baseapater and must be global to access in baseapater  

public View getView(int position, View convertView, ViewGroup parent) 
{
    ImageView imageView;
    if (convertView == null) {
        imageView = new ImageView(context);
        imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(5, 5, 5, 5);
    } else {
        imageView = (ImageView) convertView;
    }
    String path = arrayList.get(position);
    Bitmap myBitmap = BitmapFactory.decodeFile(path);
    imageView.setImageBitmap(myBitmap);
    return imageView;
}
    <?xml version="1.0" encoding="utf-8"?>
  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
       android:layout_width="fill_parent"
      android:layout_height="fill_parent">

         <GridView 
      android:id="@+id/gridview"
        android:layout_width="wrap_content" 
         android:layout_height="wrap_content"
       android:columnWidth="90dp"
          android:numColumns="auto_fit"
        android:verticalSpacing="10dp"
       android:horizontalSpacing="10dp"
         android:stretchMode="columnWidth"
          android:gravity="center"
         />
     <ImageView
    android:id="@+id/imgView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"></ImageView>
<Button
    android:id="@+id/buttonLoadPicture"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_weight="0"
    android:text="Load Picture"
    android:layout_gravity="center"></Button>
  </LinearLayout>
ArrayList<String> arrayList; //In this array you have to store all images path which is you want to display in baseapater and must be global to access in baseapater  

public View getView(int position, View convertView, ViewGroup parent) 
{
    ImageView imageView;
    if (convertView == null) {
        imageView = new ImageView(context);
        imageView.setLayoutParams(new GridView.LayoutParams(185, 185));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(5, 5, 5, 5);
    } else {
        imageView = (ImageView) convertView;
    }
    String path = arrayList.get(position);
    Bitmap myBitmap = BitmapFactory.decodeFile(path);
    imageView.setImageBitmap(myBitmap);
    return imageView;
}
public int getCount() {
    return arrayList.size();
}
void addToList(String strPath)
{
    this.arrayList.add(strPath);
    this.notifyDataSetChanged();
}
columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
objImageAdapter.addToList(picturePath);
cursor.close();