Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 来自服务器的recyclerview中未显示图像_Php_Android_Sql_Image_Android Recyclerview - Fatal编程技术网

Php 来自服务器的recyclerview中未显示图像

Php 来自服务器的recyclerview中未显示图像,php,android,sql,image,android-recyclerview,Php,Android,Sql,Image,Android Recyclerview,我遵循本教程,但遇到了一些问题()。我有一个名为images的表,其中包含id列和images列 这是我的getData.php <?php $sql = "SELECT * FROM images"; require_once('dbConnect.php'); $r = mysqli_query($con,$sql); $result = array(); while($row = mysqli_fetch_array($r)){

我遵循本教程,但遇到了一些问题()。我有一个名为images的表,其中包含id列和images列

这是我的getData.php

<?php 

    $sql = "SELECT * FROM images";

    require_once('dbConnect.php');

    $r = mysqli_query($con,$sql);

    $result = array(); 

    while($row = mysqli_fetch_array($r)){
        array_push($result,array(
        'name'=>$row['name'],
        'url'=>$row['image']
        ));
    }

    echo json_encode(array('result'=>$result));

    mysqli_close($con);
这是我的RecycleServiceAdapter:

public class RecyclerAdapter extends   RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {

List<ListItem> items;

public RecyclerAdapter(String[] names, String[] urls, Bitmap[] images){
    super();
    items = new ArrayList<ListItem>();
    for(int i =0; i<names.length; i++){
        ListItem item = new ListItem();
        item.setName(names[i]);
        item.setUrl(urls[i]);
        item.setImage(images[i]);
        items.add(item);
    }
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View layoutView = LayoutInflater.from(parent.getContext()).
            inflate(R.layout.item_list, parent, false);
    ViewHolder viewHolder = new ViewHolder(layoutView);
    return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    ListItem list =  items.get(position);
    holder.imageView.setImageBitmap(list.getImage());
    holder.textViewName.setText(list.getName());
    holder.textViewUrl.setText(list.getUrl());
}

@Override
public int getItemCount() {
    return items.size();
}

class ViewHolder extends RecyclerView.ViewHolder {
    public ImageView imageView;
    public TextView textViewName;
    public TextView textViewUrl;

    public ViewHolder(View itemView) {
        super(itemView);

        imageView = (ImageView) itemView.findViewById(R.id.items);
        textViewName = (TextView) itemView.findViewById(R.id.textViewTitle);
        textViewUrl = (TextView) itemView.findViewById(R.id.SimpleDescCardSub1);

    }
}
}
我有一个列id和image的表(varchar300)

我最大的问题是:

  • 为什么数据库中的图片未加载到recylerview
  • 我的php脚本有问题吗?我的图像存储在cpanel中我的文件管理器中上载的文件夹中

  • 任何答案都对我很有帮助。提前感谢

    使用Glider Library在OnBindViewHolder中显示来自服务器的图像

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        ListItem list =  items.get(position);
    
        Glide.with(this)
             .load(list.getImage())
             .into(imageView);
        holder.textViewName.setText(list.getName());
        holder.textViewUrl.setText(list.getUrl());
    }
    
    在gradle中添加此编译

    compile 'com.github.bumptech.glide:glide:3.7.0'
    

    您的图像url不正确complete@VivekMishra我从哪里获得数据库中每个图像的url?为此,我新增了一个选项:您仅保存主文件夹中的图像路径。您还应该将基本url附加到图像path@VivekMishra我认为这也是这个问题的原因,但我不知道如何获得像那个教程那样的特定url。你能帮我给出类似代码之类的解决方案吗?json响应中的url应该与使用eclipse的教程中的url类似,我没有毕加索库,所以我使用此代码。我只有glide和volley库:(等一下,我正在更改我的和,以获得glider支持库我得到这个错误
    glide类型中带有(上下文)的方法不适用于glide上的参数(RecyclerAdapter)
    。带有(this)…
    getApplicationContext()
    传入glide.with(getApplicationContext())它迫使我创建新的方法GetApplicationContext,该方法的内容是什么?
    public class ChildItemListJSON extends AsyncTask<Void,Void,Void> {
    
    private Context context;
    private String[] urls;
    private ProgressDialog loading;
    private Child_Tab1 child_Tab1;
    
    public ChildItemListJSON(Context context, Child_Tab1 child_Tab1, String[] urls){
        this.context = context;
        this.urls = urls;
        this.child_Tab1 = child_Tab1;
    }
    
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        loading = ProgressDialog.show(context,"Downloading Image","Please wait...",false,false);
    }
    
    @Override
    protected void onPostExecute(Void aVoid) {
        super.onPostExecute(aVoid);
        loading.dismiss();
        child_Tab1.showData();
    }
    
    @Override
    protected Void doInBackground(Void... params) {
        for(int i=0; i<urls.length; i++){
            ConfigChildItem.bitmaps[i] = getImage(urls[i]);
        }
        return null;
    }
    
    private Bitmap getImage(String bitmapUrl){
        URL url;
        Bitmap image = null;
        try {
            url = new URL(bitmapUrl);
            image = BitmapFactory.decodeStream(url.openConnection().getInputStream());
        }catch(Exception e){}
        return image;
    }
    }
    
    public class ListItem {
    private String name;
    private String url;
    private Bitmap image;
    
    public String getName() {
        return name;
    }
    
    public void setName(String name) {
        this.name = name;
    }
    
    public String getUrl() {
        return url;
    }
    
    public void setUrl(String url) {
        this.url = url;
    }
    
    public Bitmap getImage() {
        return image;
    }
    
    public void setImage(Bitmap image) {
        this.image = image;
    }
    }
    
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        ListItem list =  items.get(position);
    
        Glide.with(this)
             .load(list.getImage())
             .into(imageView);
        holder.textViewName.setText(list.getName());
        holder.textViewUrl.setText(list.getUrl());
    }
    
    compile 'com.github.bumptech.glide:glide:3.7.0'