如何通过意图传递图像? [英] how to pass Image through intent?

查看:57
本文介绍了如何通过意图传递图像?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨朋友们,

这是我在php的帮助下从myql数据库中选择数据的代码。我想做的是我想通过活动1到活动的意图传递和显示图像2.im新的android所以请帮帮我。





**活动1 **

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;
       }
  }







**活动2 **






**Activity2**

<pre lang="java">

import java.io.InputStream;

import java.net.URL;

import android.app。活动;

导入android.app.ProgressDialog;

导入android.content.Intent;

导入android.graphics.Bitmap;

导入android.graphics.BitmapFactory;

导入android.os.AsyncTask;

导入android.os.Bundle;

import android.widget.ImageView;

import android.widget.TextView;

import android.widget.Toast;



公共类InnerNewsAndEvents扩展活动{

ProgressDialog pDialog;

ProgressDialog对话框= null;

位图位图;

@Override

protected void onCreate(Bundle savedInstan ceState){

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);

< br $>














}



}

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);








}

}

推荐答案

您可以将其作为字节数组传递并构建位图以便在下一个屏幕上显示。



如何通过意图传递图像?



使用Android Android发送位图
You can pass it as a byte array and build the bitmap for display on the next screen.

how to pass images through intent?

send Bitmap using intent Android


这篇关于如何通过意图传递图像?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆