2 Replies - 2520 Views - Last Post: 06 January 2015 - 02:38 PM

#1 Ashfaqbin   User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 1
  • Joined: 01-January 15

how to pass Image through intent?

Posted 01 January 2015 - 11:01 PM

Hi friends,
Here is my code for selecting datas from myql database with the help of php.All i want to do is i want to pass and display image through intent from Activity 1 to Activity 2.im new in android so please help me.


**Activity1**
  import java.io.BufferedReader;
  import java.io.ByteArrayOutputStream;
  import java.io.IOException;
  import java.io.InputStream;
  import java.io.InputStreamReader;
  import java.net.HttpURLConnection;
  import java.net.URL;
  import java.net.UnknownHostException;
  import java.util.ArrayList;
  import java.util.List;
  
  import org.apache.http.HttpResponse;
  import org.apache.http.NameValuePair;
  import org.apache.http.client.ClientProtocolException;
  import org.apache.http.client.HttpClient;
  import org.apache.http.client.entity.UrlEncodedFormEntity;
  import org.apache.http.client.methods.HttpPost;
  import org.apache.http.impl.client.DefaultHttpClient;
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  
  import android.annotation.SuppressLint;
  import android.app.ActionBar.LayoutParams;
  import android.app.Fragment;
  import android.app.ProgressDialog;
  import android.content.Intent;
  import android.graphics.Bitmap;
  import android.graphics.BitmapFactory;
  import android.graphics.Color;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.view.Gravity;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.View.onclickListener;
  import android.view.ViewGroup;
  import android.widget.ImageView;
  import android.widget.LinearLayout;
  import android.widget.TextView;
  import android.widget.Toast;
  
  @SuppressLint("NewApi") public class News_events extends Fragment {
      private String jsonResult;
       private String url = "http://192.168.2.7/crescentnews/select.php";
       HttpPost httppost;
       StringBuffer buffer;
       HttpResponse response;
       HttpClient httpclient;
       List<NameValuePair  nameValuePairs;
       ProgressDialog dialog = null;
       ImageView img;
        Bitmap bitmap;
        ProgressDialog pDialog;
        
  
     // alert dialog manager
    	AlertDialogManager alert = new AlertDialogManager();
    	
    	// Internet detector
    	ConnectionDetector cd;
    	
       InputStream is=null;
       String result=null;
          String line=null;
          int code;
  
      public News_events(){}
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container,
              Bundle savedInstanceState) {
      	 pDialog = new ProgressDialog(getActivity());
          View rootView = inflater.inflate(R.layout.fragment_news_events, container, false);
          
          cd = new ConnectionDetector(rootView.getContext());
  
  		// Check if Internet present
  		if (!cd.isConnectingToInternet()) {
  			// Internet Connection is not present
  			alert.showAlertDialog(getActivity(),
  					"Internet Connection Error",
  					"Please connect to working Internet connection", false);
  			// stop executing code by return
  			//return.rootView;
  			return rootView;
  		}
          
  		accessWebService();
          return rootView;
      }
  
      // Async Task to access the web
       private class JsonReadTask extends AsyncTask<String, Void, String  {
        @Override
        protected String doInBackground(String... params) { 
            List<NameValuePair  nameValuePair = new ArrayList<NameValuePair (1);
  
  
         HttpClient httpclient = new DefaultHttpClient();
         HttpPost httppost = new HttpPost(params[0]);
         try {
  
          httppost.setEntity(new UrlEncodedFormEntity(nameValuePair));
          HttpResponse response = httpclient.execute(httppost); 
          jsonResult = inputStreamToString(
            response.getEntity().getContent()).toString();
          }
  
         catch (ClientProtocolException e) {
          e.printStackTrace();
         } catch (IOException e) {
          e.printStackTrace();
         }
         return null;
        }
  
         private StringBuilder inputStreamToString(InputStream is) {
         String rLine = "";
         StringBuilder answer = new StringBuilder();
         BufferedReader rd = new BufferedReader(new InputStreamReader(is));
  
         try {
          while ((rLine = rd.readLine()) != null) {
           answer.append(rLine);
          }
         }
          catch (IOException e) {
          // e.printStackTrace();
          Toast.makeText(getActivity().getApplicationContext(),
            "Error..." + e.toString(), Toast.LENGTH_LONG).show();
         }
         return answer;
        }
  
        @Override
        protected void onPostExecute(String result) {
         display();
        }
       }// end async task
  
       public void accessWebService() {
        JsonReadTask task = new JsonReadTask();
        // passes values for the urls string array
        task.execute(new String[] { url });
       }
  
       // build hash set for list view
       public void display() {
  
  
        try {
         JSONObject jsonResponse = new JSONObject(jsonResult);
         JSONArray jsonMainNode = jsonResponse.optJSONArray("news_details");
         LinearLayout MainLL= (LinearLayout)getActivity().findViewById(R.id.newslayout); 
         //LinearLayout headLN=(LinearLayout)findViewById(R.id.headsection);
  
         for (int i = 0; i < jsonMainNode.length(); i++) {
             JSONObject jsonChildNode = jsonMainNode.getJSONObject(i);
              final String head = jsonChildNode.optString("title");
              final String details = jsonChildNode.optString("text");
              final String date = jsonChildNode.optString("date");
              final String image = jsonChildNode.optString("img");
              //final String time = jsonChildNode.optString("time");
              //img = new ImageView(this.getActivity());
              //new LoadImage().execute("http://192.168.2.7/crescentnews/images/"+image);
  
              img = new ImageView(this.getActivity());
            //  Toast.makeText(getActivity(),image, Toast.LENGTH_LONG).show();
              
              LoadImage ldimg=new LoadImage();
              ldimg.setImage(img);
              ldimg.execute("http://192.168.2.7/crescentnews/images/"+image);
             
  
              TextView headln = new TextView(this.getActivity());
              headln.setText(head); // News Headlines
              headln.setTextSize(16);
              headln.setTextColor(Color.BLACK);
              headln.setGravity(Gravity.CENTER);
              headln.setBackgroundColor(Color.parseColor("#ffcd14"));
            //  headln.setBackgroundResource(R.drawable.menubg);
              headln.setPadding(0, 20, 0, 0);
            //  headln.setHeight(50);
              headln.setClickable(true);
              
  
              TextView dateln = new TextView(this.getActivity());
              dateln.setText(date); // News Headlines
              dateln.setTextSize(12);
              dateln.setTextColor(Color.BLACK);
              dateln.setGravity(Gravity.RIGHT);
              //dateln.setBackgroundColor(Color.parseColor("#f20056"));
              dateln.setBackgroundColor(0x00000000);
              dateln.setPadding(0, 0, 10, 10);
              dateln.setWidth(100);
              dateln.setClickable(true);
                      
             
  
              View sep=new View(this.getActivity());
              sep.setBackgroundColor(Color.parseColor("#252525"));
              sep.setMinimumHeight(10);
  
              TextView detailsln = new TextView(this.getActivity());
              detailsln.setText(details); // News Details
              detailsln.setTextSize(12);
              detailsln.setTextColor(Color.BLACK);
              detailsln.setGravity(Gravity.CENTER);
              detailsln.setPadding(10, 10, 10, 10);
              
              int width = LayoutParams.WRAP_CONTENT;
              int height = 200;
             LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(width,height);
             img.setLayoutParams(parms);
             parms.gravity = Gravity.CENTER;
             img.setPaddingRelative (15, 15, 15, 15);
                       
              
              
              MainLL.addView(headln);
              MainLL.addView(dateln);
           //   MainLL.addView(photo);
              MainLL.addView(img);
              MainLL.addView(detailsln);
              MainLL.addView(sep);
             
              img.setClickable(true);
              
             // img.buildDrawingCache();	
             // final Bitmap bmap = img.getDrawingCache();
              headln.setonclickListener(new onclickListener() {
  
                  @Override
                  public void onclick(View v) {
                      // TODO Auto-generated method stub
                                    	
                     Intent intent = new Intent(getActivity().getApplicationContext(),InnerNewsAndEvents.class);
                     intent.putExtra("head",head.toString());
                     intent.putExtra("details",details.toString());
                     intent.putExtra("date",date.toString());
                     startActivity(intent);       
                  }
              });
              
              dateln.setonclickListener(new onclickListener() {
              @Override
              public void onclick(View v) {
                     // TODO Auto-generated method stub
              	  Intent intent = new Intent(getActivity().getApplicationContext(),InnerNewsAndEvents.class);
                     intent.putExtra("head",head.toString());
                     intent.putExtra("details",details.toString());
                     intent.putExtra("date",date.toString());
                     startActivity(intent);       
                  }
              });
              
              img.setonclickListener(new onclickListener() {
  
              @Override
              public void onclick(View v) {
                      // TODO Auto-generated method stub
              	
                Intent intent = new Intent(getActivity().getApplicationContext(),InnerNewsAndEvents.class);
                     intent.putExtra("head",head.toString());
                     intent.putExtra("details",details.toString());
                     intent.putExtra("date",date.toString());
                     startActivity(intent);       
                  }
              });
  
         }
        } catch (JSONException e) {
         Toast.makeText(getActivity().getApplicationContext(), "Error" + e.toString(),
           Toast.LENGTH_SHORT).show();
        }
         }
  
       private class LoadImage extends AsyncTask<String, String, Bitmap  {
           ImageView img;
                       @Override
                           protected void onPreExecute() {
                               super.onPreExecute();
                              
                               pDialog.setMessage("Loading Image ....");
                               pDialog.show();
  
  
                       }
           public void setImage(ImageView img ){
           this.img=img;
           }
  
           protected Bitmap doInBackground(String... args) {
               try {
                   bitmap = BitmapFactory.decodeStream((InputStream)new URL(args[0]).openStream());
                   } 
               catch (Exception e) { e.printStackTrace(); }
               return bitmap;
           }
  
           protected void onPostExecute(Bitmap image) {
                if(image != null){
                    img.setImageBitmap(image);
                    
                    pDialog.dismiss(); 
                }
                pDialog.dismiss(); 
           } 
  
       }
       
       public static boolean isInternetReachable()
       {
           try {
               //make a URL to a known source
               URL url = new URL("http://www.google.com");
  
               //open a connection to that source
               HttpURLConnection urlConnect = (HttpURLConnection)url.openConnection();
  
               //trying to retrieve data from the source. If there
               //is no connection, this line will fail
               Object objData = urlConnect.getContent();
  
           } catch (UnknownHostException e) {
               e.printStackTrace();
               return false;
           }
           catch (IOException e) {
               e.printStackTrace();
               return false;
           }
           return true;
       }
  }


**Activity2**
  
  
  import java.io.InputStream;
  import java.net.URL;
  
  import android.app.Activity;
  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.widget.ImageView;
  import android.widget.TextView;
  import android.widget.Toast;
  
  public class InnerNewsAndEvents extends Activity {
  	ProgressDialog pDialog;
  	ProgressDialog dialog = null;
      Bitmap bitmap;
  	@Override
  	protected void onCreate(Bundle savedInstanceState) {
  		super.onCreate(savedInstanceState);
  		setContentView(R.layout.activity_inner_news_and_events);
  		
  		TextView title=(TextView)findViewById(R.id.tvtitle);
  		TextView details=(TextView)findViewById(R.id.tvdetails);
  		ImageView img=(ImageView)findViewById(R.id.imgpic);
  		
  		Intent intent = getIntent();
          String strhead = intent.getStringExtra("head");
          String strdetails = intent.getStringExtra("details");
          String strdate = intent.getStringExtra("date");
        
          
          title.setText(strhead);
          details.setText(strdetails);
          
     
         
          
          
       
          
         
  	}
  	 
  }
  


Is This A Good Question/Topic? 0
  • +

Replies To: how to pass Image through intent?

#2 macosxnerd101   User is offline

  • Games, Graphs, and Auctions
  • member icon




Reputation: 12691
  • View blog
  • Posts: 45,880
  • Joined: 27-December 08

Re: how to pass Image through intent?

Posted 01 January 2015 - 11:08 PM

Welcome to Dream.in.Code! I have moved your thread to the Android sub-forum for better visibility.

I encourage you to check out the Intent documentation. The putExtra() methods are relevant. As long as your image is Parcelable or Serializable, you should be good. Android Bitmap objects in particular are Parcelable.
Was This Post Helpful? 1
  • +
  • -

#3 farrell2k   User is offline

  • D.I.C Lover
  • member icon

Reputation: 874
  • View blog
  • Posts: 2,706
  • Joined: 29-July 11

Re: how to pass Image through intent?

Posted 06 January 2015 - 02:38 PM

Definitely read the Intent documentation and familiarize yousrself with it, but the easiest way to pass an Image through an Intent is to put it into a bundle.

From the top of my head, so check the code:

Intent i = new Intent(context, Activity2.class);
i.putExtra("cat image", "Environment.getExternalStorageDirectory/cat.jpg");
startActivity....



Then you just call getExtra on the Intent from the new Activity.

If the two activities are in the same app, there is no sense serializing the object or putting it into bundle, etc, although you could, as MAC suggested.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1