package com.example.lp2maray; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; import org.apache.http.NameValuePair; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; public class Galeri extends AppCompatActivity { private GridView gridView; private GridViewAdapter gridAdapter; private ProgressDialog pDialog; JSONParser jParser = new JSONParser(); JSONArray myJSON = null; private static final String TAG_SUKSES = "sukses"; private static final String TAG_record = "record"; int jd=0; String ip=""; String[]arId_galeri; String[]arJudul; String[]arTgl; String[]arJam; String[]arKeterangan; String[]arKode_anggota; String[]arGambar; Bitmap []arBitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ip=jParser.getIP(); new load().execute(); } private ArrayList<ImageItem> getData() { final ArrayList<ImageItem> imageItems = new ArrayList<>(); //TypedArray imgs = getResources().obtainTypedArray(R.array.image_ids); for (int i = 0; i < jd; i++) {//jd/imgs.length() //Bitmap bitmap = BitmapFactory.decodeResource(getResources(),arBitmap[i]);// imgs.getResourceId(i, -1) imageItems.add(new ImageItem(arBitmap[i], arJudul[i])); } return imageItems; } class load extends AsyncTask<String, String, String> { @Override protected void onPreExecute() { super.onPreExecute(); pDialog = new ProgressDialog(Galeri.this); pDialog.setMessage("Load data. Silahkan Tunggu..."); pDialog.setIndeterminate(false); pDialog.setCancelable(false); pDialog.show(); } protected String doInBackground(String... args) { List<NameValuePair> params = new ArrayList<NameValuePair>(); JSONObject json = jParser.makeHttpRequest(ip+"galeri/galeri_show.php", "GET", params); // Log.d("show: ", json.toString()); try { int sukses = json.getInt(TAG_SUKSES); if (sukses == 1) { myJSON = json.getJSONArray(TAG_record); jd=myJSON.length(); arId_galeri=new String[jd]; arJudul=new String[jd]; arTgl=new String[jd]; arJam=new String[jd]; arKeterangan=new String[jd]; arKode_anggota=new String[jd]; arGambar=new String[jd]; arBitmap=new Bitmap[jd]; for (int i = 0; i < myJSON.length(); i++) { JSONObject c = myJSON.getJSONObject(i); arId_galeri[i]= c.getString("id_galeri"); arJudul[i]= c.getString("judul"); arTgl[i]= c.getString("tgl"); arJam[i]= c.getString("jam"); arKeterangan[i]= c.getString("keterangan"); arKode_anggota[i]= c.getString("nama_anggota"); arGambar[i]= c.getString("gambar"); String gb=ip+"ypathfile/"+ arGambar[i]; Log.v("URL",gb); arBitmap[i]=getBitmapFromURL(gb); } } } catch (JSONException e) {e.printStackTrace();} return null; } protected void onPostExecute(String file_url) { pDialog.dismiss(); runOnUiThread(new Runnable() { public void run() { gridView = (GridView) findViewById(R.id.gridView); gridAdapter = new GridViewAdapter(Galeri.this, R.layout.grid_item_layout, getData()); gridView.setAdapter(gridAdapter); gridView.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView<?> parent, View v, int position, long id) { ImageItem item = (ImageItem) parent.getItemAtPosition(position); Intent intent = new Intent(Galeri.this, DetailGaleri.class); intent.putExtra("title", arJudul[position]);//item.getTitle() intent.putExtra("title2", arTgl[position]); intent.putExtra("title3", arKeterangan[position]); intent.putExtra("title4", arKode_anggota[position]); intent.putExtra("gambar", arGambar[position]); //intent.putExtra("image", item.getImage()); startActivity(intent); } }); } });} } public static Bitmap getBitmapFromURL(String src) { try { URL url = new URL(src); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); Bitmap myBitmap = BitmapFactory.decodeStream(input); return myBitmap; } catch (IOException e) { // Log exception return null; } } public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, 1, 0, "Upload foto");//.setIcon(R.drawable.add); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case 1: Intent i = new Intent(getApplicationContext(), UploadToServer.class); startActivityForResult(i, 100); return true; } return false; } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { finish(); return true; } return super.onKeyDown(keyCode, event); } }++++++++++++++++++
GridViewAdapter.java
package com.example.lp2maray; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; public class GridViewAdapter extends ArrayAdapter<ImageItem> { private Context context; private int layoutResourceId; private ArrayList<ImageItem> data = new ArrayList<ImageItem>(); public GridViewAdapter(Context context, int layoutResourceId, ArrayList<ImageItem> data) { super(context, layoutResourceId, data); this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; } @Override public View getView(int position, View convertView, ViewGroup parent) { View row = convertView; ViewHolder holder; if (row == null) { LayoutInflater inflater = ((Activity) context).getLayoutInflater(); row = inflater.inflate(layoutResourceId, parent, false); holder = new ViewHolder(); holder.imageTitle = (TextView) row.findViewById(R.id.text); holder.image = (ImageView) row.findViewById(R.id.image); row.setTag(holder); } else { holder = (ViewHolder) row.getTag(); } ImageItem item = data.get(position); holder.imageTitle.setText(item.getTitle()); holder.image.setImageBitmap(item.getImage()); return row; } static class ViewHolder { TextView imageTitle; ImageView image; } }+++++++++++++++++
++++++++++++++ImageItem.javapackage com.example.komunitas; import android.graphics.Bitmap; public class ImageItem { private Bitmap image; private String title; public ImageItem(Bitmap image, String title) { super(); this.image = image; this.title = title; } public Bitmap getImage() { return image; } public void setImage(Bitmap image) { this.image = image; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } }
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#f0f0f0"> <GridView android:id="@+id/gridView" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:columnWidth="100dp" android:drawSelectorOnTop="true" android:gravity="center" android:numColumns="2" android:stretchMode="columnWidth" android:verticalSpacing="5dp" android:focusable="true" android:clickable="true"/> </RelativeLayout>
grid_item_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:background="@drawable/grid_color_selector" android:orientation="vertical" android:padding="5dp"> <ImageView android:id="@+id/image" android:layout_width="160dp" android:layout_height="150dp" /> <TextView android:id="@+id/text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="5dp" android:gravity="center" android:textSize="12sp" /> </LinearLayout>
Tidak ada komentar:
Posting Komentar