2014-12-24 11 views
1

У меня есть код для отображения всех данных из MySQL databae. Также у меня есть поле изображения в базе данных MySQL, у которых есть имена изображений. Как я могу отображать изображение из базы данных (изображение находится в папке localhost). Я новичок в android, поэтому, пожалуйста, помогите мне. Вот мой код, если u может изменить мой требуемый код, тогда это будет большой помощью.Как отобразить изображение из базы данных mysql?

JAVA

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.Fragment; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.graphics.Color; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.ImageView; 
import android.widget.LinearLayout; 
import android.widget.TextView; 
import android.widget.Toast; 

public class News_events extends Fragment { 
    private String jsonResult; 
    private String url = "http://192.168.2.7/crescentnews/select.php"; 
    HttpPost httppost; 
    StringBuffer buffer; 
    HttpResponse response; 
    HttpClient httpclient; 
    List<NameValuePair> nameValuePairs; 
    ProgressDialog dialog = null; 

    InputStream is=null; 
    String result=null; 
     String line=null; 
     int code; 

    public News_events(){} 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.fragment_news_events, container, false); 
     accessWebService(); 
     return rootView; 
    } 

    // Async Task to access the web 
    private class JsonReadTask extends AsyncTask<String, Void, String> { 
     @Override 
     protected String doInBackground(String... params) { 
      List<NameValuePair> nameValuePair = new ArrayList<NameValuePair>(1); 


     HttpClient httpclient = new DefaultHttpClient(); 
     HttpPost httppost = new HttpPost(params[0]); 
     try { 

      httppost.setEntity(new UrlEncodedFormEntity(nameValuePair)); 
     HttpResponse response = httpclient.execute(httppost); 
     jsonResult = inputStreamToString(
      response.getEntity().getContent()).toString(); 
     } 

     catch (ClientProtocolException e) { 
     e.printStackTrace(); 
     } catch (IOException e) { 
     e.printStackTrace(); 
     } 
     return null; 
     } 

     private StringBuilder inputStreamToString(InputStream is) { 
     String rLine = ""; 
     StringBuilder answer = new StringBuilder(); 
     BufferedReader rd = new BufferedReader(new InputStreamReader(is)); 

     try { 
     while ((rLine = rd.readLine()) != null) { 
     answer.append(rLine); 
     } 
     } 
     catch (IOException e) { 
     // e.printStackTrace(); 
     Toast.makeText(getActivity().getApplicationContext(), 
      "Error..." + e.toString(), Toast.LENGTH_LONG).show(); 
     } 
     return answer; 
     } 

     @Override 
     protected void onPostExecute(String result) { 
     display(); 
     } 
    }// end async task 

    public void accessWebService() { 
     JsonReadTask task = new JsonReadTask(); 
     // passes values for the urls string array 
     task.execute(new String[] { url }); 
    } 

    // build hash set for list view 
    public void display() { 


     try { 
     JSONObject jsonResponse = new JSONObject(jsonResult); 
     JSONArray jsonMainNode = jsonResponse.optJSONArray("news_details"); 
     LinearLayout MainLL= (LinearLayout)getActivity().findViewById(R.id.newslayout); 
     //LinearLayout headLN=(LinearLayout)findViewById(R.id.headsection); 

     for (int i = 0; i < jsonMainNode.length(); i++) { 
      JSONObject jsonChildNode = jsonMainNode.getJSONObject(i); 
      final String head = jsonChildNode.optString("title"); 
      final String details = jsonChildNode.optString("text"); 
      final String date = jsonChildNode.optString("date"); 
      //final String time = jsonChildNode.optString("time"); 

      TextView headln = new TextView(this.getActivity()); 

      headln.setText(head); // News Headlines 
      headln.setTextSize(20); 
      headln.setTextColor(Color.BLACK); 
      headln.setGravity(Gravity.CENTER); 
      headln.setBackgroundResource(R.drawable.menubg); 
      headln.setPadding(10, 20, 10, 0); 
      headln.setWidth(100); 
      headln.setClickable(true); 
      headln.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        //Toast.makeText(getBaseContext(), head, Toast.LENGTH_SHORT).show(); 
        Intent intent = new Intent(getActivity().getApplicationContext(),MainActivity.class); 
        intent.putExtra("head",head.toString()); 
        intent.putExtra("details",details.toString()); 
        intent.putExtra("date",date.toString()); 
        // intent.putExtra("time",time.toString()); 
        startActivity(intent);  
       } 
      }); 

      ImageView photo=new ImageView(this.getActivity()); 
      //dateln.setBackgroundColor(Color.parseColor("#f20056")); 
      photo.setBackgroundColor(Color.parseColor("#000000")); 
      photo.setPadding(0, 0, 10, 10); 
      photo.setClickable(true); 


      TextView dateln = new TextView(this.getActivity()); 
      dateln.setText(date); // News Headlines 
      dateln.setTextSize(12); 
      dateln.setTextColor(Color.BLACK); 
      dateln.setGravity(Gravity.RIGHT); 
      //dateln.setBackgroundColor(Color.parseColor("#f20056")); 
      dateln.setBackgroundColor(0x00000000); 
      dateln.setPadding(0, 0, 10, 10); 
      dateln.setWidth(100); 
      dateln.setClickable(true); 
      dateln.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Intent intent = new Intent(getActivity().getApplicationContext(), MainActivity.class); 
         intent.putExtra("head",head.toString()); 
         intent.putExtra("details",details.toString()); 
         intent.putExtra("date",date.toString()); 
         // intent.putExtra("time",time.toString()); 
         startActivity(intent);   
       } 
      }); 

      View sep=new View(this.getActivity()); 
      sep.setBackgroundColor(Color.parseColor("#252525")); 
      sep.setMinimumHeight(10); 

      TextView detailsln = new TextView(this.getActivity()); 
      detailsln.setText(details); // News Details 
      detailsln.setTextSize(12); 
      detailsln.setTextColor(Color.BLACK); 
      detailsln.setGravity(Gravity.LEFT); 
      detailsln.setPadding(10, 10, 10, 10); 
      MainLL.addView(headln); 
      MainLL.addView(dateln); 
      MainLL.addView(photo); 
      MainLL.addView(detailsln); 
      MainLL.addView(sep); 


      detailsln.setClickable(true); 
      detailsln.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 

        Intent intent = new Intent(getActivity().getApplicationContext(), MainActivity.class); 
         intent.putExtra("head",head.toString()); 
         intent.putExtra("details",details.toString()); 
         intent.putExtra("date",date.toString()); 
         // intent.putExtra("time",time.toString()); 
         startActivity(intent);  
       } 
      }); 

     } 
     } catch (JSONException e) { 
     Toast.makeText(getActivity().getApplicationContext(), "Error" + e.toString(), 
     Toast.LENGTH_SHORT).show(); 
     } 
     } 

} 
+1

Пожалуйста, разместите только соответствующий код. Узнайте, как создать [MCVE] (http://stackoverflow.com/help/mcve) –

ответ

0

сохранить URL изображения в БД (если они находятся в одной папке на вашем хосте выбрать базовый URL и сохранить только имя изображения)
после извлечения данных, есть много библиотеки для отображения изображений, таких как:

Picasso

Мощная библиотека для загрузки и кеширования изображений для Android

Смежные вопросы