如何在Android中使用PHP MySql中的图像填充网格视图?

如何在Android中使用PHP MySql中的图像填充网格视图?,android,phpmyadmin,Android,Phpmyadmin,我想从PHP MySql数据库中检索所有图像并填充GridView。我正在使用JSON解析。但是在我的网格视图中,没有显示来自PHP的图像,也没有任何错误。那么为什么不在我的应用程序中的网格视图中显示图像呢?代码有什么问题吗。谢谢你的感激 这是我的适配器代码 import java.util.ArrayList; import java.util.HashMap; import android.content.Context; import android.view.View; import

我想从PHP MySql数据库中检索所有图像并填充GridView。我正在使用JSON解析。但是在我的网格视图中,没有显示来自PHP的图像,也没有任何错误。那么为什么不在我的应用程序中的网格视图中显示图像呢?代码有什么问题吗。谢谢你的感激

这是我的适配器代码

import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class GridViewAdapter extends BaseAdapter
{
    private Context context;
    public ArrayList<HashMap<String, String>> mThumbIds;

    public GridViewAdapter (Context context,ArrayList<HashMap<String, String>> data )
    {
        this.context= context;
        mThumbIds= data;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return position ;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ImageView imageView = new ImageView(context);
        imageView.setImageResource(mThumbIds.get(position).get("image"));
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
        return imageView;

    }
}
import java.util.ArrayList;
导入java.util.HashMap;
导入android.content.Context;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.BaseAdapter;
导入android.widget.GridView;
导入android.widget.ImageView;
公共类GridViewAdapter扩展了BaseAdapter
{
私人语境;
公共数组列表mThumbIds;
公共GridViewAdapter(上下文、ArrayList数据)
{
this.context=context;
mThumbIds=数据;
}
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共对象getItem(int位置){
//TODO自动生成的方法存根
返回位置;
}
@凌驾
公共长getItemId(int位置){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
ImageView ImageView=新的ImageView(上下文);
setImageResource(mThumbIds.get(position.get(“image”));
imageView.setScaleType(imageView.ScaleType.CENTER\U裁剪);
setLayoutParams(新的GridView.LayoutParams(70,70));
返回图像视图;
}
}
这是活动代码

package com.photo_app;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.GridView;

public class Photo_Gallery extends Activity
{
    JSONObject jsonobject;
    JSONArray jsonarray;
    GridView gridview;
    GridViewAdapter adapter;
    ProgressDialog mProgressDialog;
    ArrayList<HashMap<String, String>> arraylist;
    JSONParser jsonParser = new JSONParser();
    ProgressDialog pDialog;
    private String URL_PHOTO_GALLERY = "http://192.168.1.102/timesofindia/admin/photo_gallery.php";

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.photo_gallery);
        new DownloadJSON().execute();
    }


    private class DownloadJSON extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            mProgressDialog = new ProgressDialog(Photo_Gallery.this);
            mProgressDialog.setTitle("Wait");
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) 
        {

            arraylist = new ArrayList<HashMap<String, String>>();
            jsonobject = JSONfunctions.getJSONfromURL(URL_PHOTO_GALLERY);
            System.out.println("Json String = " + jsonobject.toString());


            try
            {
                jsonarray = jsonobject.getJSONArray("photo_gallary");
                for (int i = 0; i < jsonarray.length(); i++)
                {
                    HashMap<String, String> map = new HashMap<String, String>();
                    jsonobject = jsonarray.getJSONObject(i);
                    map.put("flag", jsonobject.getString("image"));
                    arraylist.add(map);
                    Log.e("arraylist","=");
                }
            } 
            catch (JSONException e)
            {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void args) {

            gridview = (GridView) findViewById(R.id.photoGallery);
            adapter = new GridViewAdapter();
            gridview.setAdapter(adapter);
            mProgressDialog.dismiss();
        }
    }
}
package com.photo\u应用程序;
导入java.util.ArrayList;
导入java.util.HashMap;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.widget.GridView;
公开课照片库扩展活动
{
JSONObject JSONObject;
JSONArray JSONArray;
GridView;
GridViewAdapter;
进程对话框;
ArrayList ArrayList;
JSONParser JSONParser=新的JSONParser();
ProgressDialog;
私有字符串URL\u照片\u图库=”http://192.168.1.102/timesofindia/admin/photo_gallery.php";
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.photo_gallery);
新建下载JSON().execute();
}
私有类下载JSON扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
mProgressDialog=新建ProgressDialog(Photo_Gallery.this);
设置标题(“等待”);
设置消息(“加载…”);
mProgressDialog.setUndeterminate(false);
mProgressDialog.show();
}
@凌驾
受保护的Void doInBackground(Void…参数)
{
arraylist=新的arraylist();
jsonobject=JSONfunctions.getJSONfromURL(URL\u照片\u图库);
System.out.println(“Json字符串=“+jsonobject.toString());
尝试
{
jsonarray=jsonobject.getJSONArray(“photo_gallary”);
for(int i=0;i
您需要将数据传递到适配器。因此,创建一个
构造函数
,该构造函数接受数据并在
getView
中使用它

将所需数据从活动传递到适配器(它可以是任何类型。我刚才给出了传递
Integer[]
的示例)

更新:

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ImageView imageView = new ImageView(context);
         imageView.setImageResource(mThumbIds.get(position).get("key")); // assuming key contains the resource id
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
        return imageView;

    }
请尝试以下代码:

package com.photo_app;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.GridView;

public class Photo_Gallery extends Activity
{
    JSONObject jsonobject;
    JSONArray jsonarray;
    GridView gridview;
    GridViewAdapter adapter;
    ProgressDialog mProgressDialog;
    ArrayList<HashMap<String, String>> arraylist;
    JSONParser jsonParser = new JSONParser();
    ProgressDialog pDialog;
    private String URL_PHOTO_GALLERY = "http://192.168.1.102/timesofindia/admin/photo_gallery.php";

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.photo_gallery);
        new DownloadJSON().execute();
    }


    private class DownloadJSON extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            mProgressDialog = new ProgressDialog(Photo_Gallery.this);
            mProgressDialog.setTitle("Wait");
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) 
        {

            arraylist = new ArrayList<HashMap<String, String>>();
            jsonobject = JSONfunctions.getJSONfromURL(URL_PHOTO_GALLERY);
            System.out.println("Json String = " + jsonobject.toString());


            try
            {
                jsonarray = jsonobject.getJSONArray("photo_gallary");
                for (int i = 0; i < jsonarray.length(); i++)
                {
                    HashMap<String, String> map = new HashMap<String, String>();
                    jsonobject = jsonarray.getJSONObject(i);
                    map.put("flag", jsonobject.getString("image"));
                    arraylist.add(map);

                    Log.e("arraylist","=" + arraylist.add(map) );
                }
            } 
            catch (JSONException e)
            {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void args) {

            gridview = (GridView) findViewById(R.id.photoGallery);
            adapter = new GridViewAdapter(Photo_Gallery.this,arraylist);
            gridview.setAdapter(adapter);
            mProgressDialog.dismiss();
        }
    }



}
package com.photo\u应用程序;
导入java.util.ArrayList;
导入java.util.HashMap;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.util.Log;
导入android.widget.GridView;
公开课照片库扩展活动
{
JSONObject JSONObject;
JSONArray JSONArray;
GridView;
GridViewAdapter;
进程对话框;
ArrayList ArrayList;
JSONParser JSONParser=新的JSONParser();
ProgressDialog;
私有字符串URL\u照片\u图库=”http://192.168.1.102/timesofindia/admin/photo_gallery.php";
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.photo_gallery);
新建下载JSON().execute();
}
私有类下载JSON扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
mProgressDialog=新建ProgressDialog(Photo_Gallery.this);
设置标题(“等待”);
设置消息(“加载…”);
mProgressDialog.setUndeterminate(false);
mProgressDialog.show();
}
@凌驾
保护空隙
 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        ImageView imageView = new ImageView(context);
         imageView.setImageResource(mThumbIds.get(position).get("key")); // assuming key contains the resource id
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setLayoutParams(new GridView.LayoutParams(70, 70));
        return imageView;

    }
package com.photo_app;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.GridView;

public class Photo_Gallery extends Activity
{
    JSONObject jsonobject;
    JSONArray jsonarray;
    GridView gridview;
    GridViewAdapter adapter;
    ProgressDialog mProgressDialog;
    ArrayList<HashMap<String, String>> arraylist;
    JSONParser jsonParser = new JSONParser();
    ProgressDialog pDialog;
    private String URL_PHOTO_GALLERY = "http://192.168.1.102/timesofindia/admin/photo_gallery.php";

    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.photo_gallery);
        new DownloadJSON().execute();
    }


    private class DownloadJSON extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            mProgressDialog = new ProgressDialog(Photo_Gallery.this);
            mProgressDialog.setTitle("Wait");
            mProgressDialog.setMessage("Loading...");
            mProgressDialog.setIndeterminate(false);
            mProgressDialog.show();
        }

        @Override
        protected Void doInBackground(Void... params) 
        {

            arraylist = new ArrayList<HashMap<String, String>>();
            jsonobject = JSONfunctions.getJSONfromURL(URL_PHOTO_GALLERY);
            System.out.println("Json String = " + jsonobject.toString());


            try
            {
                jsonarray = jsonobject.getJSONArray("photo_gallary");
                for (int i = 0; i < jsonarray.length(); i++)
                {
                    HashMap<String, String> map = new HashMap<String, String>();
                    jsonobject = jsonarray.getJSONObject(i);
                    map.put("flag", jsonobject.getString("image"));
                    arraylist.add(map);

                    Log.e("arraylist","=" + arraylist.add(map) );
                }
            } 
            catch (JSONException e)
            {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void args) {

            gridview = (GridView) findViewById(R.id.photoGallery);
            adapter = new GridViewAdapter(Photo_Gallery.this,arraylist);
            gridview.setAdapter(adapter);
            mProgressDialog.dismiss();
        }
    }



}
package com.photo_app;

import java.util.ArrayList;
import java.util.HashMap;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

import com.androidquery.AQuery;

public class GridViewAdapter extends BaseAdapter
{
    private Context context;
    public ArrayList<HashMap<String,String>> mThumbIds=new ArrayList<HashMap<String, String>>();
    AQuery aQuery;
    private LayoutInflater mInflater;

    public GridViewAdapter (Context context,ArrayList<HashMap<String,String>> data )
    {
        this.context= context;
        mThumbIds= data;
        aQuery=new AQuery(context);
    }



    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return mThumbIds.size();
    }

    @Override
    public Object getItem(int position) {
        // TODO Auto-generated method stub
        return  0;
    }

    @Override
    public long getItemId(int position) {
        // TODO Auto-generated method stub
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        final ViewHolder holder;
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.photo_gallery_list_item, null);
            holder = new ViewHolder();
            holder.imageView = (ImageView) convertView.findViewById(R.id.imageView);
            convertView.setTag(holder);
        }else {
            holder = (ViewHolder) convertView.getTag();
        }

        aQuery.id(holder.imageView).image(mThumbIds.get(position).get("flag"),true,true);

        return convertView;

    }

    class ViewHolder {

        ImageView imageView;
    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:padding="5dp" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="70dp"
        android:layout_height="70dp"
        android:scaleType="centerCrop"
        android:src="@drawable/ic_launcher"
        android:adjustViewBounds="true"/>

</LinearLayout>