2016-04-28 10 views
0

画像を取得してGridViewに表示するアプリケーションを作成しました。 イメージはデータベース上のbase64エンコードであり、私のアプリケーションではイメージをデコードします。 jtds.jarライブラリファイルを使用して、昏睡状態のデータベースに接続します。 サーバがローカルのときにアプリケーションが正常に動作します。 Webサーバー上にある場合、画像はGridviewに表示されません。 助けを求めるタンク。GridViewはWebサーバーから画像を表示しません

パブリッククラスHomeFragmentフラグメント{

ConnectionClass connectionClass; 

GridView gridView; 

//プログレスバー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(); 

//テントの意図=新しいテント(getActivity()getApplicationContext()、FriendsActivity.class。); // intent.putExtra( "pid"、pid); // startActivity(インテント);

   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

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

答えて

0

1本を試してみてください)輸入ピカソのGradle

の広場 `コンパイル 'からcom.squareup.picasso:ピカソ:2.5.2'

2)あなたのImageViewのを取得し、ここのようなURLから画像を読み込む

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

私はこのヘルプを願っています

http://square.github.io/picasso/ - ここでは、他の命令

そして、あなたはピカソのようにしない場合は、「ユニバーサル・イメージ・ローダー」https://github.com/nostra13/Android-Universal-Image-Loaderを使用するか、https://github.com/bumptech/glideをグライドすることができます。

関連する問題