2016-04-28 16 views
0

Ich habe eine Anwendung erstellt, die Bilder in GridView anzeigen und anzeigen wird. das Bild ist Base64 encode auf Datenbank und in meiner Anwendung dekodiere ich das Bild. Ich benutze jtds.jar Bibliotheksdatei, um Coma-Datenbank zu verbinden die Anwendung funktioniert gut, wenn der Server lokal ist, wenn auf dem Webserver die Bilder nicht auf Gridview angezeigt werden. Tanks für die Hilfe.GridView zeigt kein Bild vom Webserver an

public class HomeFragment erweitert Fragment {

ConnectionClass connectionClass; 

GridView gridView; 

// ProgressBar pbbar;

MenuProdutoAdapter adapter; 

public HomeFragment() { 
    // Required empty public constructor 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    connectionClass = new ConnectionClass(); 



     FillGrid fillGrid = new FillGrid(); 
     fillGrid.execute(""); 

     Toast.makeText(getActivity(), "Internet nao esta disponivel", Toast.LENGTH_LONG).show(); 



} 


@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    View rootView = inflater.inflate(R.layout.fragment_home, container, false); 

    gridView = (GridView) rootView.findViewById(R.id.gridView1); 

// pbbar = (ProgressBar) rootView.findViewById(R.id.pbbar); 
// pbbar.setVisibility(View.GONE); 

    // Inflate the layout for this fragment 


    return rootView; 
} 


@Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
} 

@Override 
public void onDetach() { 
    super.onDetach(); 
} 


public class FillGrid extends AsyncTask<String, String, String> { 
    String z = ""; 

    List<MenuProdutos> menuProdutosList = new ArrayList<MenuProdutos>(); 


    @Override 
    protected void onPreExecute() { 

    // pbbar.setVisibility(View.VISIBLE); 
    } 

    @Override 
    protected void onPostExecute(String r) { 

     // pbbar.setVisibility(View.GONE); 

     Toast.makeText(getActivity(),r, Toast.LENGTH_SHORT).show(); 

     adapter = new MenuProdutoAdapter(HomeFragment.this, menuProdutosList); 

     gridView.setAdapter(adapter); 

     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       String pid = menuProdutosList.get(position).getProdutoMenu_ID(); 

       Toast.makeText(getActivity().getApplicationContext(), "Produtos " 
           + (position + 1) + ": " + menuProdutosList.get(position).getProdutoMenu_nome() 
           + "E o seu PID eh: " + pid, 
         Toast.LENGTH_LONG).show(); 

// Intent Absicht = new Intent (getActivity() getApplicationContext(), FriendsActivity.class.); // intention.putExtra ("pid", pid); // startActivity (Absicht);

   displayView(position); 

       } 
     } ); 


    } 

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

     try { 
      Connection con = connectionClass.CONN(); 
      if (con == null) { 
       z = "Error in connection with SQL server"; 
      } else { 
       String query = "select * from ImagemMenu"; 
       PreparedStatement ps = con.prepareStatement(query); 
       ResultSet rs = ps.executeQuery(); 


       while (rs.next()) { 

        String Menupro_ID = rs.getString("Id"); 
        String Menupro_nome = rs.getString("Nome"); 
        String Menupro_image = rs.getString("Imagem"); 


        byte[] decodeString = Base64.decode(Menupro_image, Base64.DEFAULT); 
        Bitmap Menupro_bitmap = BitmapFactory.decodeByteArray(decodeString, 
          0, decodeString.length); 

        MenuProdutos p = new MenuProdutos(Menupro_ID, Menupro_nome, Menupro_bitmap); 

        menuProdutosList.add(p); 

       } 



       z = "Success"; 
      } 
     } catch (Exception ex) { 
      z = "Error retrieving data from table"; 

     } 
     return z; 
    } 
} 
+0

Verwenden Sie http://square.github.io/picasso/ – meh

Antwort

0

Versuchen Sie, diese

1) Import Picasso von Platz in gradle

`kompilieren 'com.squareup.picasso: picasso: 2.5.2'

2) erhalten Sie Ihre Imageview und laden Sie das Bild aus einer uRL wie hier

Picasso.with(context).load("http://your_uri").into(imageView); 

ich hoffe, dass diese Hilfe

http://square.github.io/picasso/ < - andere Anweisungen hier

Und wenn Sie nicht wie Picasso tun können Sie "Universal-Image Loader" https://github.com/nostra13/Android-Universal-Image-Loader oder https://github.com/bumptech/glide Glide verwenden.

Verwandte Themen