|
||
|
|
|
|||||||
| 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
|
||||
|
||||
|
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();
}
}
|
|
|
|
#2
|
||||
|
||||
|
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. |
|
#3
|
||||
|
||||
|
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.
|
![]() |
Estás aquí
|
||||||
|
||||||