Note that there are some explanatory texts on larger screens.

plurals
  1. POasynctask to download images then load images into horizontal gallery
    text
    copied!<p>I am using asynctask to download images and then once it has finished downloading, it should load the images into my horizontal gallery. is it possible? </p> <p>for now i have tried but it keeps crashing:</p> <pre><code>@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); new downloadFile().execute(); gallery = (Gallery) findViewById(R.id.examplegallery); gallery.setAdapter(new AddImgAdp(this)); gallery.setOnItemClickListener(new OnItemClickListener() { public void onItemClick(AdapterView parent, View v, int position, long id) { // Displaying the position when the gallery item in clicked Toast.makeText(MainActivity.this, "Position=" + position, Toast.LENGTH_SHORT).show(); } }); } /** * Background Async Task to Load all product by making HTTP Request * */ class downloadFile extends AsyncTask&lt;String, String, String&gt; { /** * getting all magazines from url * */ protected String doInBackground(String... args) { URL myFileUrl = null; // Building Parameters List&lt;NameValuePair&gt; params = new ArrayList&lt;NameValuePair&gt;(); // getting JSON string from URL JSONObject json = jParser.makeHttpRequest(url_login, "GET", params); // Check your log cat for JSON reponse Log.d("All Products: ", json.toString()); try { // Checking for SUCCESS TAG int success = json.getInt(TAG_SUCCESS); if (success == 1) { // products found // Getting Array of Products mag = json.getJSONArray(TAG_MAGAZINE); for (int i = 0; i &lt; mag.length(); i++) { JSONObject c = mag.getJSONObject(i); // Storing each json item in variable String magLink = c.getString(TAG_MAGAZINE_URL); String magThumb = c.getString(TAG_MAGAZINE_THUMBNAIL); //String magazineIssue = c.getString(TAG_MAGAZINE_ISSUE); urlList.add(magLink); //urlList.add(magazineIssue); thumbnailList.add(magThumb); System.out.println(thumbnailList); } } else { } } catch (JSONException e) { e.printStackTrace(); } for (int i = 0; i &lt; thumbnailList.size(); i ++) { thumbnail = thumbnailList.get(i).toString(); Log.d("thumbnail", thumbnail); number = i; try { myFileUrl = new URL(thumbnail); // RETRIEVE IMAGE URL } catch (MalformedURLException e) { e.printStackTrace(); } try { HttpURLConnection conn = (HttpURLConnection) myFileUrl.openConnection(); conn.setDoInput(true); conn.connect(); InputStream in = conn.getInputStream(); Log.i("im connected", "Download"); bmImg = BitmapFactory.decodeStream(in); File filename; try { // GET EXTERNAL STORAGE, SAVE FILE THERE File storagePath = new File(Environment.getExternalStorageDirectory(),"Covers"); storagePath.mkdirs(); filename = new File(storagePath + "/photo"+number+".jpg"); FileOutputStream out = new FileOutputStream(filename); bmImg.compress(Bitmap.CompressFormat.JPEG, 90, out); out.flush(); out.close(); MediaStore.Images.Media.insertImage(getContentResolver(),filename.getAbsolutePath(), filename.getName(), filename.getName()); // displayImage(); } catch (Exception e) { e.printStackTrace(); } } catch (IOException e) { e.printStackTrace(); } } return null; } /** * After completing background task Dismiss the progress dialog * **/ protected void onPostExecute() { runOnUiThread(new Runnable() { public void run() { ArrayList&lt;String&gt; mStringList= new ArrayList&lt;String&gt;(); File strPath = new File(Environment.getExternalStorageDirectory() + "/Covers"); int lists = strPath.listFiles().length; Log.d("number of items in array ",String.valueOf(lists)); File yourDir = new File(strPath, ""); for (File f : yourDir.listFiles()) { if (f.isFile()) { String name = f.getName(); String v = strPath + "/" + name; mStringList.add(v); } } mImageIds = new String[mStringList.size()]; mImageIds = mStringList.toArray(mImageIds); for(int a = 0; a &lt; mImageIds.length ; a++){ Log.d("string is",(mImageIds[a])); } } }); } } public class AddImgAdp extends BaseAdapter { int GalItemBg; private Context cont; public AddImgAdp(Context c) { cont = c; TypedArray typArray = obtainStyledAttributes(R.styleable.GalleryTheme); GalItemBg = typArray.getResourceId(R.styleable.GalleryTheme_android_galleryItemBackground, 0); typArray.recycle(); } public int getCount() { return mImageIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView imgView = new ImageView((Context) cont); imgView.setImageDrawable(Drawable.createFromPath(mImageIds[position])); // Fixing width &amp; height for image to display imgView.setLayoutParams(new Gallery.LayoutParams(80, 70)); imgView.setScaleType(ImageView.ScaleType.FIT_XY); imgView.setBackgroundResource(GalItemBg); return imgView; } } } </code></pre> <p>this is my logcat output:</p> <pre><code>12-28 12:08:10.510: E/AndroidRuntime(5567): FATAL EXCEPTION: main 12-28 12:08:10.510: E/AndroidRuntime(5567): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.horizontalviewing/com.example.horizontalviewing.MainActivity}: java.lang.NullPointerException 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1978) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2003) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.ActivityThread.access$600(ActivityThread.java:123) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1169) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.os.Handler.dispatchMessage(Handler.java:99) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.os.Looper.loop(Looper.java:137) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.ActivityThread.main(ActivityThread.java:4446) 12-28 12:08:10.510: E/AndroidRuntime(5567): at java.lang.reflect.Method.invokeNative(Native Method) 12-28 12:08:10.510: E/AndroidRuntime(5567): at java.lang.reflect.Method.invoke(Method.java:511) 12-28 12:08:10.510: E/AndroidRuntime(5567): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 12-28 12:08:10.510: E/AndroidRuntime(5567): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 12-28 12:08:10.510: E/AndroidRuntime(5567): at dalvik.system.NativeStart.main(Native Method) 12-28 12:08:10.510: E/AndroidRuntime(5567): Caused by: java.lang.NullPointerException 12-28 12:08:10.510: E/AndroidRuntime(5567): at com.example.horizontalviewing.MainActivity$AddImgAdp.getCount(MainActivity.java:247) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.widget.AbsSpinner.setAdapter(AbsSpinner.java:113) 12-28 12:08:10.510: E/AndroidRuntime(5567): at com.example.horizontalviewing.MainActivity.onCreate(MainActivity.java:69) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.Activity.performCreate(Activity.java:4465) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 12-28 12:08:10.510: E/AndroidRuntime(5567): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1942) 12-28 12:08:10.510: E/AndroidRuntime(5567): ... 11 more </code></pre>
 

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