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


 
Herramientas
  #1  
Viejo 27/08/16, 10:53:08
Avatar de sonydei
sonydei sonydei no está en línea
Miembro del foro
Mensajes: 75
 
Fecha de registro: may 2011
Mensajes: 75
Modelo de smartphone: Samsung Galaxy Note 2
Tu operador: Simyo
Mencionado: 2 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de sonydei
sonydei sonydei no está en línea
Miembro del foro
Mensajes: 75
 
Fecha de registro: may 2011
Mensajes: 75
Modelo de smartphone: Samsung Galaxy Note 2
Tu operador: Simyo
Mencionado: 2 comentarios
Tagged: 0 hilos
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
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 13:02:28 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007