Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 27/08/16, 10:53:08
Array

[xs_avatar]
sonydei sonydei no está en línea
Miembro del foro
 
Fecha de registro: may 2011
Mensajes: 75
Modelo de smartphone: Samsung Galaxy Note 2
Tu operador: Simyo
Compartir imagenes fuera de la aplicación

Vereis estoy haciendo una aplicación para ver imágenes que están alojadas en un servidor externo y quisiera que el usuario pudiera compartir dichas imágenes. Pero me da error estas líneas me podeis ayudar?

Código:
package com.imagenes;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import android.graphics.Bitmap;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;

import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;

public class VerImagenes extends Activity {

	HttpResponse response;
	String resultado;
	private AdView adView;
	String[] Imagenes;
	Context context;
	int loader = R.drawable.loader;
	int CantImg = 0;
	


 @override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		ActionBar bar = getActionBar();
		bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#DB25E8")));
		setContentView(R.layout.ver_imagenes);
		
		private Intent shareIt() {
			 ImageView.setDrawingCacheEnabled(true);
		         Bitmap icon = ImageView.getDrawingCache();
		         ByteArrayOutputStream bytes = new ByteArrayOutputStream();
		         icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
		         File file = new File(Environment.getExternalStorageDirectory() + File.separator + "temporary_file.jpg");
		         try {
		             file.createNewFile();
		             FileOutputStream fo = new FileOutputStream(file);
		             fo.write(bytes.toByteArray());
		         } catch (IOException e) {                      
		                 e.printStackTrace();
		         }
		         
		         Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
		         shareIntent.setType("image/png");
		         shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
		         Uri uri = Uri.parse(Environment.getExternalStorageDirectory() + File.separator + "temporary_file.jpg");
		         
		         shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
		         startActivity(Intent.createChooser(shareIntent, "Share via"));
		         return shareIntent;
		     }
       
       
	    context = getApplicationContext();
		
		// Cargamos la publicidad de AdMob
	    AdView adView = (AdView)this.findViewById(R.id.adView);
	    AdRequest adRequest = new AdRequest.Builder().build();
	    adView.loadAd(adRequest);
	    
	    //Cargamos listado de url
	    new MyAsyncTask().execute("");
	}

	//Boton ir atras
	public void IrAtras(View view){
		CantImg--;
		if(CantImg<0) CantImg=0; else LoadImg();
	}

	//Boton ir adelante
	public void IrAdelante(View view){
		CantImg++;
		if(CantImg>(Imagenes.length-1)) CantImg--; else LoadImg();
	}	

	//Mostrar imagen en pantalla
	public void LoadImg(){
		Log.e("CantImg:",""+CantImg);
		ImageView image = (ImageView) findViewById(R.id.imageView1);
        String image_url = Imagenes[CantImg];
         
        ImageLoader imgLoader = new ImageLoader(context);    	         
        imgLoader.DisplayImage(image_url, loader, image);
        
        TextView txt = (TextView) findViewById(R.id.textView1);
        txt.setText((CantImg+1) + " de " + Imagenes.length);
        
	}
	
	//Cargar listado de imagenes
	private class MyAsyncTask extends AsyncTask<String, Integer, Double>{
	 @override
		protected Double doInBackground(String... params) {
			// TODO Auto-generated method stub
			postData();
			return null;
		}
 
		protected void onPostExecute(Double result){
			//Toast.makeText(getApplicationContext(), "Cargando...", Toast.LENGTH_LONG).show();
			Log.e("Termino:","1");
		}
		
		protected void onProgressUpdate(Integer... progress){
			//Progreso
		}
 
		public void postData() {
			// Creamos un nuevo cliente htttp y leemos nuestra url
			HttpClient httpclient = new DefaultHttpClient();
			HttpGet httppost = new HttpGet("http://www.smartcooper.com/testandroid.php");

			try {
				// Ejecutamos la accion y obtenemos el resultado
				response = httpclient.execute(httppost);
				HttpEntity httpEntity = response.getEntity();
                resultado = EntityUtils.toString(httpEntity);
        	    Log.e("Resultado: ",""+resultado);
        	    
        	    Imagenes = resultado.split("#-#");
    			Log.e("Imagen:",""+ Imagenes[0]);
    			
    			runOnUiThread(new Runnable() {
    			     @override
    			     public void run() {
    						ImageView image = (ImageView) findViewById(R.id.imageView1);
    				        String image_url = Imagenes[0];
    				         
    				        ImageLoader imgLoader = new ImageLoader(context);    	         
    				        imgLoader.DisplayImage(image_url, loader, image);
    				        
    				        TextView txt = (TextView) findViewById(R.id.textView1);
    				        txt.setText((CantImg+1) + " de " + Imagenes.length);
    			     }
    			});
			} catch (ClientProtocolException e) {
				// 	TODO Auto-generated catch block
			} catch (IOException e) {
				// 	TODO Auto-generated catch block
			}
		}
	}
	
 @override
	  public void onResume() {
	    super.onResume();
	    if (adView != null) {
	      adView.resume();
	    }
	  }

	  @override
	  public void onPause() {
	    if (adView != null) {
	      adView.pause();
	    }
	    super.onPause();
	  }

	  /** Called before the activity is destroyed. */
	  @override
	  public void onDestroy() {
	    // Destroy the AdView.
	    if (adView != null) {
	      adView.destroy();
	    }
	    super.onDestroy();
	  }
	 
}
Responder Con Cita


  #2  
Viejo 27/08/16, 10:58:36
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Te da error porque estás usando un método de instancia como si fuese un método de clase, y que encima no es de esa clase, es de su clase superior, así que aún siendo un método de clase te seguiría fallando.

Para que lo entiendas:

Clase c = new Clase();
c.Metodo(); <--- Método de instancia
Clase.Metodo(); <-- Método de clase

Como siempre digo, primero Java, después Android.
Responder Con Cita
  #3  
Viejo 27/08/16, 11:03:06
Array

[xs_avatar]
sonydei sonydei no está en línea
Miembro del foro
 
Fecha de registro: may 2011
Mensajes: 75
Modelo de smartphone: Samsung Galaxy Note 2
Tu operador: Simyo
Gracias por responder @kriogeNN, estoy aprendiendo poco a poco solo queria aprender a crear un botón para que la gente pudiera compartir las imagenes. y creí que con este codigo lo podría hacer.
Responder Con Cita
  #4  
Viejo 27/08/16, 18:29:41
Array

[xs_avatar]
Dexafree Dexafree no está en línea
Mr. FAQMan
· Votos compra/venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Tu operador: Movistar
 Cita: Originalmente Escrito por sonydei Ver Mensaje
Gracias por responder @kriogeNN, estoy aprendiendo poco a poco solo queria aprender a crear un botón para que la gente pudiera compartir las imagenes. y creí que con este codigo lo podría hacer.
Como el propio kriogen suele decir, es importante aprender primero Java y ya despues Android
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 18:04:25 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /