主要活动类
package com.example.shubham.myproductsale;
import android.graphics.Bitmap;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.JsonObjectRequest;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
RecyclerView.Adapter reAdapter;
RecyclerView.LayoutManager layoutManager;
ArrayList<ListProvider> arrayList= new ArrayList<ListProvider>();
ArrayList<String> url= new ArrayList<String>();
int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView= (RecyclerView)findViewById(R.id.recyclerview);
layoutManager= new GridLayoutManager(this, 2, GridLayoutManager.VERTICAL,false);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
//-------> Add data from server
JsonArrayRequest jsonArrayRequest= new JsonArrayRequest(Request.Method.POST, "http://192.168.56.1/myDataset.php", null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSONArray jsonArray= response;
int len= jsonArray.length();
for(int i=0; i<len; i++){
try{
JSONObject object= jsonArray.getJSONObject(i);
url.add(object.getString("product_url").replace("localhost", "192.168.56.1"));
ListProvider listProvider= new ListProvider(object.getInt("product_id"),object.getString("product_name"),object.getString("product_url").replace("localhost", "192.168.56.1"),object.getString("product_desc"));
arrayList.add(listProvider);
}
catch (Exception e){
Toast.makeText(getApplicationContext(), "Something Exception", Toast.LENGTH_SHORT).show();
}
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Something went wrong", Toast.LENGTH_SHORT).show();
}
});
MySingletonClass.getInstance(getApplicationContext()).addToQue(jsonArrayRequest);
for( i=0; i< url.size(); i++){
ImageRequest imageRequest= new ImageRequest(url.get(i), new Response.Listener<Bitmap>() {
@Override
public void onResponse(Bitmap response) {
arrayList.get(i).setBitmapImage(response);
}
}, 0, 0,null , new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), "Something went wrong in downloading", Toast.LENGTH_SHORT).show();
}
});
MySingletonClass.getInstance(getApplicationContext()).addToQue(imageRequest);
}
//-----------------------------
reAdapter= new ListAdapter(arrayList);
recyclerView.setAdapter(reAdapter);
}
}
我的ListProvider类
package com.example.shubham.myproductsale;
import android.content.Context;
import android.graphics.Bitmap;
import android.widget.ImageView;
import android.widget.Toast;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.ImageRequest;
import com.android.volley.toolbox.Volley;
/**
* Created by SHUBHAM on 20-02-2017.
*/
public class ListProvider {
private int pId;
private String pName, pUrl, pDesc;
private Bitmap bm;
public ListProvider(int pid, String pname, String purl, String pdesc) {
this.setpDesc(pdesc);
this.setpId(pid);
this.setpName(pname);
this.setpUrl(purl);
}
public int getpId() {
return pId;
}
public void setpId(int pId) {
this.pId = pId;
}
public String getpName() {
return pName;
}
public Bitmap getBitmapImage(){
return bm;
}
public void setpName(String pName) {
this.pName = pName;
}
public String getpUrl() {
return pUrl;
}
public void setpUrl(String pUrl) {
this.pUrl = pUrl;
}
public String getpDesc() {
return pDesc;
}
public void setBitmapImage(Bitmap bm){
this.bm= bm;
}
public void setpDesc(String pDesc) {
this.pDesc = pDesc;
}
}
我的ListAdapter类
package com.example.shubham.myproductsale;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;
/**
* Created by SHUBHAM on 20-02-2017.
*/
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.RecyclerViewHolder> {
ArrayList<ListProvider> arrayList;
public ListAdapter(ArrayList<ListProvider> arrayList) {
this.arrayList= arrayList;
}
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
RecyclerViewHolder recyclerViewHolder;
view= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_display_layout, parent, false);
recyclerViewHolder= new RecyclerViewHolder(view);
return recyclerViewHolder;
}
public void onBindViewHolder(RecyclerViewHolder holder, int position) {
ListProvider listProvider;
listProvider= arrayList.get(position);
holder.textView.setText(listProvider.getpName());
holder.imageView.setImageBitmap(listProvider.getBitmapImage());
}
@Override
public int getItemCount() {
return arrayList.size();
}
public static class RecyclerViewHolder extends RecyclerView.ViewHolder{
public TextView textView;
public ImageView imageView;
public RecyclerViewHolder(View itemView) {
super(itemView);
textView= (TextView)itemView.findViewById(R.id.textView);
imageView= (ImageView)itemView.findViewById(R.id.imageView);
}
}
}
我正在使用recyclerview创建一个CUSTOM LISTVIEW,我需要一些文本和一个列表数据的图像。我可以从服务器获取文本数据,但我无法下载图像。
我正在使用Wamp服务器来测试应用程序。 注意 - 创建的视图没有问题。
答案 0 :(得分:0)
您必须在此处添加您的网址链接。只需改变这个
holder.imageView.setImageBitmap(listProvider.getBitmapImage());
用这个
holder.imageView.setImageBitmap("your link to the folder where this image stores"+listProvider.getBitmapImage());
希望这有帮助