Note that there are some explanatory texts on larger screens.

plurals
  1. POImages inside gridView takes long time in loading as well as it disappear on scroll of GridView
    primarykey
    data
    text
    <p>When i am scrolling the GridView the images disappear in it. In log Cat its also showing outofmemory i dont know what i am doing wrong here.! It takes long time to display the images also. Thanks in Advance. </p> <p>BaseActivity.java</p> <pre><code>public class BaseActivity extends Activity{ private Context context = this; boolean server_connection = false; static final Comparator&lt;HashMap&lt;String, String&gt;&gt; byDate = new Comparator&lt;HashMap&lt;String, String&gt;&gt;() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public int compare(HashMap&lt;String, String&gt; ord1, HashMap&lt;String, String&gt; ord2) { Date d1 = null; Date d2 = null; try { if(ord1.get("datetime")!=null){ d1 = sdf.parse(ord1.get("datetime")); } else{ d1 = sdf.parse("1970-01-01 00:00:00"); } if(ord2.get("datetime")!=null){ d2 = sdf.parse(ord2.get("datetime")); } else{ d2 = sdf.parse("1970-01-01 00:00:00"); } } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } //Log.d("Date", ""+d1+"..........."+d2); return (d1.getTime() &gt; d2.getTime() ? -1 : 1); //descending // return (d1.getTime() &gt; d2.getTime() ? 1 : -1); //ascending } }; static final Comparator&lt;HashMap&lt;String, String&gt;&gt; byCount = new Comparator&lt;HashMap&lt;String, String&gt;&gt;() { public int compare(HashMap&lt;String, String&gt; ord1, HashMap&lt;String, String&gt; ord2) { int c1,c2; if(ord1.get("download_count")!=null &amp;&amp; !ord1.get("download_count").equals("null")){ c1=Integer.parseInt(ord1.get("download_count")); } else{c1=0;} if(ord2.get("download_count")!=null &amp;&amp; !ord2.get("download_count").equals("null")){ c2=Integer.parseInt(ord2.get("download_count")); } else{c2=0;} return (c1&gt;c2 ? -1 : 1); //descending } }; public boolean isOnline() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); if (netInfo != null &amp;&amp; netInfo.isConnectedOrConnecting()) { return true; } return false; } public String prepareWebserviceRequest(String methodname, String[] keys, String[] values) throws JSONException{ String retStr = null; String strParams = null; JSONObject json = new JSONObject(); for(int i=0;i&lt;keys.length;i++){ json.put(keys[i],values[i]); } JSONObject fJson = new JSONObject(); fJson.put("method_name", methodname); fJson.put("body", json); retStr = fJson.toString(); return retStr; } public String prepareWebserviceRequestOnlyMethod(String methodname) throws JSONException{ String retStr = null; String strParams = null; JSONObject json = new JSONObject(); JSONObject fJson = new JSONObject(); fJson.put("method_name", methodname); // fJson.put("body", json); retStr = fJson.toString(); return retStr; } 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) { e.printStackTrace(); return null; } } public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) { int width = bm.getWidth(); int height = bm.getHeight(); float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // CREATE A MATRIX FOR THE MANIPULATION Matrix matrix = new Matrix(); // RESIZE THE BIT MAP matrix.postScale(scaleWidth, scaleHeight); // RECREATE THE NEW BITMAP Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false); return resizedBitmap; } class Download extends AsyncTask&lt;String, Void, Bitmap&gt;{ @Override protected Bitmap doInBackground(String... params) { // TODO Auto-generated method stub Bitmap bmp=null; bmp = getBitmapFromURL(params[0]); return bmp; } } public void WriteFile(String path,String filename,String data) { try{ File direct = new File(path); if(!direct.exists()) { direct.mkdir();//directory is created; } String fpath= path +filename; File txtfile=new File(fpath); txtfile.createNewFile(); FileOutputStream fout=new FileOutputStream(txtfile); OutputStreamWriter myoutwriter=new OutputStreamWriter(fout); myoutwriter.write(data); myoutwriter.close(); fout.close(); } catch(Exception e) { e.printStackTrace(); } } public String ReadFile(String path,String filename) { File myFile = new File(path + filename); if(!myFile.exists()) { return null; } FileInputStream fIn = null; try { fIn = new FileInputStream(myFile); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader myReader = new BufferedReader( new InputStreamReader(fIn)); String aDataRow = ""; String aBuffer = ""; try { while ((aDataRow = myReader.readLine()) != null) { aBuffer += aDataRow + "\n"; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return aBuffer; } public boolean FileExist(String filename) { String PATH2 = Environment.getExternalStorageDirectory() + "/"+Constant.Alert_Name+filename; Log.v("log_tag initial path", "PATH: " + PATH2); File file2 = new File(PATH2); if(file2.exists()==true) { return true; } return false; } public String callAPI(String strRequest) { String result = null; String new_params; int ResponseCode; // TODO Auto-generated method stub try { JSONObject json = new JSONObject(); HttpParams httpParams = new BasicHttpParams(); httpParams.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1); httpParams.setParameter(CoreProtocolPNames.HTTP_CONTENT_CHARSET, HTTP.UTF_8); httpParams.setParameter(CoreProtocolPNames.USER_AGENT, "Apache-HttpClient/Android"); //httpParams.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15000); httpParams.setParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false); SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443)); ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(httpParams, schemeRegistry); HttpClient client = new DefaultHttpClient(cm,httpParams); String url = Constant.WebService_URL; //String url = "http://192.168.1.3/messages_app/main.php"; URL url1 = new URL(Constant.WebService_URL); // URL url1 = new URL("http://192.168.1.3/messages_app/main.php"); HttpPost request = new HttpPost(url); request.setHeader("Content-Type", "application/x-www-form-urlencoded"); new_params =strRequest; List&lt;NameValuePair&gt; nameValuePairs = new ArrayList&lt;NameValuePair&gt;(2); //nameValuePairs.add(new BasicNameValuePair("json","{\"method_name\":\"get_all_category\"}")); nameValuePairs.add(new BasicNameValuePair("json",new_params)); request.setEntity(new UrlEncodedFormEntity(nameValuePairs)); // request.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8"))); request.setHeader("json", json.toString()); HttpResponse response = client.execute(request); ResponseCode = response.getStatusLine().getStatusCode(); //Log.d("ResponseCode", ""+ResponseCode); if(ResponseCode==200){ HttpEntity entity = response.getEntity(); // If the response does not enclose an entity, there is no need if (entity != null) { InputStream instream = entity.getContent(); result = RestClient.convertStreamToString(instream); // Log.i("Read from server", result); } } else if(ResponseCode!=200){ return "Server down"; } } catch (Throwable t) { return null; } return result; } } </code></pre> <p>LazyAdapter.java</p> <pre><code>public class LazyAdapter extends BaseAdapter { private Activity activity; private String data[]; private LayoutInflater inflater=null; public ImageLoader imageLoader; DisplayImageOptions options; ArrayList&lt;HashMap&lt;String, String&gt;&gt; list; public LazyAdapter(Activity a,ArrayList&lt;HashMap&lt;String, String&gt;&gt; list) { this.list=list; activity = a; inflater = (LayoutInflater)LayoutInflater.from(a); File cacheDir = StorageUtils.getOwnCacheDirectory(a, "Download"); // Get singletone instance of ImageLoader imageLoader = ImageLoader.getInstance(); // Create configuration for ImageLoader (all options are optional) ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(a) // You can pass your own memory cache implementation .memoryCacheExtraOptions(480,800) .denyCacheImageMultipleSizesInMemory() .discCacheExtraOptions(480, 480, CompressFormat.PNG, 100) .discCache(new UnlimitedDiscCache(cacheDir)) // You can pass your own disc cache .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) .enableLogging() .build(); // Initialize ImageLoader with created configuration. Do it once. imageLoader.init(config); //imageLoader.init(ImageLoaderConfiguration.createDefault(a)); // imageLoader=new ImageLoader(activity.getApplicationContext()); options = new DisplayImageOptions.Builder() .showStubImage(R.drawable.stub_image) .cacheInMemory() // .cacheOnDisc() .displayer(new RoundedBitmapDisplayer(20)) .build(); } public int getCount() { return list.size(); } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; if(convertView==null) { vh = new ViewHolder(); convertView= inflater.inflate(R.layout.other, parent,false); vh.iv=(ImageView)convertView.findViewById(R.id.picture); vh.pb= (ProgressBar)convertView.findViewById(R.id.pb); vh.tv = (TextView)convertView.findViewById(R.id.text); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); } // vh.tv.setText("Image in postion ="+position); if(Global.getCurrent_tab()==1){ vh.tv.setText(""+list.get(position).get("download_count")); } display(vh.iv, Constant.img_URL+list.get(position).get("photo_name"), vh.pb); return convertView; } public void display(ImageView img, String url, final ProgressBar pb) { imageLoader.displayImage(url, img, options, new ImageLoadingListener() { @Override public void onLoadingCancelled() { // TODO Auto-generated method stub } @Override public void onLoadingComplete(Bitmap arg0) { // TODO Auto-generated method stub pb.setVisibility(View.GONE); } @Override public void onLoadingFailed(FailReason arg0) { // TODO Auto-generated method stub pb.setVisibility(View.GONE); } @Override public void onLoadingStarted() { // TODO Auto-generated method stub pb.setVisibility(View.VISIBLE); } }); } static class ViewHolder { ImageView iv; TextView tv; ProgressBar pb; } } </code></pre> <p>DefaultGridView.java</p> <pre><code>public class DefaultGridView extends Activity { GridView gridView; Context context=this; DisplayImageOptions options; protected ImageLoader imageLoader = ImageLoader.getInstance(); @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.latestphotos); gridView = (GridView) findViewById(R.id.grid_view); gridView.setAdapter(new LazyAdapter(DefaultGridView.this,Global.getPhotos_list())); gridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int position, long arg3) { String url =Constant.img_URL+Global.getPhotos_list().get(position).get("photo_name"); Intent i = new Intent(DefaultGridView.this, FullImageActivity.class); i.putExtra("idkey", url); // pass the id startActivity(i); } }); } } </code></pre> <p>FullImageActivity.java</p> <pre><code>public class FullImageActivity extends Activity { Button download, setaswallpaper, reportissue; String url1; Bitmap myBitmap; ImageDownloader mDownloader; FileOutputStream fos; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.full_image); setaswallpaper = (Button) findViewById(R.id.setaswallpaper); download = (Button)findViewById(R.id.download); reportissue = (Button)findViewById(R.id.reportissue); final ImageView imageView = (ImageView) findViewById(R.id.full_image_view); url1 = getIntent().getStringExtra("idkey"); //get id Log.i(".............",""+url1); //imageView.setImageResource(id); new Thread( new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { URL url = new URL(url1.toString()); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.connect(); InputStream input = connection.getInputStream(); myBitmap = BitmapFactory.decodeStream(input); } catch(Exception e) { e.printStackTrace(); } runOnUiThread( new Runnable() { @Override public void run() { // TODO Auto-generated method stub imageView.setImageBitmap(myBitmap); } }); } }).start(); setaswallpaper.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub WallpaperManager myWallpaperManager = WallpaperManager.getInstance(getApplicationContext()); try { myWallpaperManager.setBitmap(myBitmap); Toast.makeText(getApplicationContext(), "Wallpaper has been set...!!", Toast.LENGTH_LONG).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); download.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub try { saveImageToSD(); // Toast.makeText(getApplicationContext(), "Wallpaper has been Downloaded...!!", Toast.LENGTH_LONG).show(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }); reportissue.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Intent.ACTION_SENDTO); // it's not ACTION_SEND intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "Report Issue"); intent.putExtra(Intent.EXTRA_TEXT, "Body of email"); intent.setData(Uri.parse("mailto:reportissue@gmail.com")); // or just "mailto:" for blank intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // this will make such that when user returns to your app, your app is displayed, instead of the email app. startActivity(intent); } }); } private void saveImageToSD() { /*--- this method will save your downloaded image to SD card ---*/ ByteArrayOutputStream bytes = new ByteArrayOutputStream(); /*--- you can select your preferred CompressFormat and quality. * I'm going to use JPEG and 100% quality ---*/ myBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bytes); /*--- create a new file on SD card ---*/ long current = System.currentTimeMillis(); File file = new File(Environment.getExternalStorageDirectory() + File.separator + (current / 1000) + "wallpaper.jpg"); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } /*--- create a new FileOutputStream and write bytes to file ---*/ try { fos = new FileOutputStream(file); } catch (FileNotFoundException e) { e.printStackTrace(); } try { fos.write(bytes.toByteArray()); fos.close(); Toast.makeText(this, "Image saved", Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload