Android : Acceder a la cámara mediante Java

Blog >Lista Soluciones > Hacer foto codigo Java





Acceder a la cámara del dispositivo

Buenas desarrolladores, en este post vamos a ver como tener acceso a la cámara del dispositivo, sacar una foto y visualizarla en un ImageView, es algo super simple, sólo que navegando por .net me he encontrado formas más tediosas y complicadas de hacerlo, así que bien comento un poquito el código y despues lo posteo: Esta es la imagen de la actividad, es un LinearLayout en el que hay un botón y un Imageview



Y este es el código del xml de la actividad:


    

Bien, ahora vamos donde esta la chicha, es sencillito, así que tengo poco que comentar, en resumen, se crea un intent para acceder a la cámara y después se le asigna la imagen mediante un objeto Bitmap para que se muestre en el ImageView

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
//CODIGO SACADO DE http://thebestandroide.blogspot.com.es
//BY oOo mAkOnE oOo
public class MainActivity extends Activity {
 //OBJETOS DE LA INTERFAD
 private Button botonacceso;
 private ImageView imagen;
 //CONSTANTE FOTO
 private static final int FOTO=1;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //instanciamos boton
  botonacceso=(Button)findViewById(R.id.button1);
  //instanciamos imagen
  imagen=(ImageView)findViewById(R.id.imageView1);
  
  //le aplicamos el listener para el evento de clikar en el boton
  botonacceso.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) {
    // generamos intent, starActivityForResult, es para lanzar el intent
    //con intención de recoger resultado
    Intent irAcamara = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(irAcamara,FOTO);
   }
  });
 }
 //metodo para recoger resultado 
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  //Vemos si el código de la foto es igual a de nuestra constante FOTO
  if(requestCode==FOTO){
   //recogemos foto en objeto Bitmap
   Bitmap miImagen = (Bitmap) data.getExtras().get("data");
   //Lo colocamos en el ImageView
   imagen.setImageBitmap(miImagen);
  }
  super.onActivityResult(requestCode, resultCode, data);
 }
}

NOTA : la función onActivityResult se puede crear pulsando BOTON DERECHO/SOURCE/OVERRIDE IMPLEMENT METHODS, ahi se busca, se selecciona y se implementa.

Y este es el resultado:




El fuente está en la version 4.4.2 Android Kit-kat


Podeis descargar el código fuente de thebestandroide con sólo compartir en facebook,twitter,linkedin o suscribirte a nuestro canal RSS más abajo. 



Compartir Compartir Compartir Compartir



Developer solutions

Blog > Lista Soluciones



LISTA DE SOLUCIONES ANDROID DEVELOPER MOBILE


  • View Widgets
          TextView
          Cambiar color Java XML

           ImputText
           Contar caracteres de un ImputText mediante Java

           LinearLayout
           Manejar alto y ancho LinearLayout mediante Java

           Button
           Cambio diseño Button XML onClick()

           ListView
           Listview Texto + Image 


  • Vibracion
          Vibración dispositivo
          Vibración mediante del dispositivo mediante Java


  • Notificationes
          Notification Manager
          Notificaciones: nueva instancia y vuelta a la anterior

          Toast
          Toast con Imagen

          ContextMenu
          ContextMenu+RadioButton (I)

          ContextMenu+Imagen por iTem (II)



  • Preferencias
          Shared Preferences
          Guardar y cargar entero



  • Hardware Android
          Accediendo al dispositivo
          Usando TelephonyManager

          Sacar Fotografia
          Sacar foto onActivityResult()

          Calibrado de pantalla
          Vertical -> apaisado



  • Animaciones
          Frames
          Animacion XML/JAVA I 

          Programacion XML
          Animacion XML/JAVA II

  • Bitmaps
          Por referencia
          Bitmaps con SoftReference

  • Hilos
         AsinkTask
         Lanzamiento segundo hilo

  • Fragments
         Fragments
          Fragments en Android 
          Comunicación entre fragments

          Menu Fragments
          Drawer Menú para Fragments en Android 

         











Compartir Compartir Compartir Compartir




Sobre el blog Thebestandroide

Blog THEBESTANDROIDE


Blog > Sobre el blog

Thebestandroide es un blog orientado a la programación basado en un intenso estudio profesional a base de profundizar en el combo de lenguajes por los que se construyen aplicaciones móviles, ya sea JAVA y XML para Android o Objetive-C para iOS.

Incluye desde problemas básicos hasta errores complejos ya con soluciones para que tu aprendizaje en las plataformas Android e iOS tenga una fuente optimizada en castellano desde Internet. Thebestandroide cuenta con las siguientes características:

  • Basado en la plataforma Blogger. Blogger te permite publicar contenidos de forma rápida y muy sencilla, para que el blog esté siempre actualizado y los developers encuentren rapidamente la solución. 

  • Articulos completos y explicados, hay que tener en cuenta que el blog está pensado para esos desarrolladores que poseen ya conceptos avanzados de java y C. Hay fragmentos de código como instancias de objetos, en las que se presupone que ya se saben ciertos conceptos básicos.

  • Usa la herramienta SyntaxHighlighter para mostrar el código fuente en formato "programación", favorece la lectura rápida, ordenada y extructurada del código fuente.

  • Un tutorial para empezar desde 0 con Objetive-C en el apartado iOS del blog. Podeis acceder desde aquí.
  • Una lista de las soluciones publicadas a lo largo de este tiempo en Java para Android, podeis acceder desde aquí.
  • Una sección que hace la función de repositorio de código para conexiones en servidores, como JSON o Twitter desde aquí.

  • Mucho esfuerzo y ganas de aprender día a día, para compartir con todos vosotros los conocimientos aprendidos.
















Compartir Compartir Compartir Compartir




Android : Rotar ImageView XML

Blog >Lista Soluciones > Rotar ImageView codigo XML


Animar una ImageView en una vista a través de un archivo XML.
 
Buenas, vamos a ver como animar una imágen en una vista a través de un archivo xml.Tenemos la imagen, yo la he llamado sol.png




Después en el proyecto, sino hay carpeta drawable, crearla y dentro arrastrar la imagen,y también creamos otra carpeta anim, donde dentro de ella insertamos un archivo xml con el ResourceType: TweenAnimation





Ahora vamos al código
XML, Creamos el objeto rotar y le asignamos propiedades

:

    
    



En activity_main.xml pongo una imagen y un boton, al pulsar sobre el botón, veremos como gira la imagen, así queda la clase de la actividad de Java:



import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.ImageView;

public class MainActivity extends Activity {
 private Context context=this;
 private Button b1;
 private ImageView imagen;
 private Animation rotacion;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //Instancio objetos
  imagen=(ImageView) findViewById(R.id.imageView1);
  b1=(Button) findViewById(R.id.button1);
  //EVENTO ONCLICK AL BOTON
  b1.setOnClickListener(new OnClickListener(){
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    rotacion= AnimationUtils.loadAnimation(context, R.anim.rotar);
    imagen.setAnimation(rotacion);
   }
  });
 }
}


Y este es el resultado:






Podeis descargar el código fuente de thebestandroide con sólo compartir en facebook,twitter,linkedin o suscribirte a nuestro canal RSS más abajo. 



Compartir Compartir Compartir Compartir



Android : Información sobre gráficos en Android

Debido a que he recibido varios e-mails a cerca del post sobre como gestionar gráficos, pongo unas páginas interesantes sobre el tema, personalmente no se mucho del tema y voy ahora a ver como empiezo, ire posteando como siempre los problemas, y si tengo tiempo, hasta tutorial de cómo empezar con OpenGL.

http://androideity.com/2011/08/23/andengine-el-motor-de-juegos-2d-opengl-para-android/

http://www.genbetadev.com/programacion-de-videojuegos/como-empezar-a-programar-videojuegos

http://www.linux-magazine.es/issue/84/032-035_Android3DLM84.pdf

Android :TelephonyManager para acceso datos dispositivo móvil

Blog >Lista Soluciones > TelephonyManager


Usamos la clase TelephonyManager para acceder a los datos del dispositivo móvil Android





Esta clase que constituye un centro de información del dispositvo móvil. Es sencillo de usar y puedes acceder a varios datos del dispositivo, no doy ninguna explicación más ya que es sencillito de entender:


package com.example.datostlf;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class MainActivity extends Activity {
 private TextView t1;
 private TextView t2;
 private TextView t3;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  //Instancio textviews actividad principal
  t1=(TextView) findViewById(R.id.textView1);
  t2=(TextView) findViewById(R.id.textView2);
  t3=(TextView) findViewById(R.id.textView3);
  //Instancia de esta clase para obtener los datos del telefono
  final TelephonyManager datosTelefono=
    (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
  
  t1.setText("Estado de la llamada : "+datosTelefono.getCallState());
  t2.setText("Id DEL dispositivo : "+datosTelefono.getDeviceId());
  t3.setText("Operador SIM : "+datosTelefono.getSimOperatorName());
  
  //NO OLVIDAR COLOCAR PERMISOS ANDROID MANIFEST
  //
 }
}



Podeis descargar el código fuente de thebestandroide con sólo compartir en facebook,twitter,linkedin o suscribirte a nuestro canal RSS más abajo. 



Compartir Compartir Compartir Compartir





Android: Clase Java para Preferencias

Blog >Lista Soluciones > Shared Preferences



Gestion de preferencias para Android usando Shared Preferences


Buenas, hoy traigo una clase Java para gestionar preferencias de un entero, pero he de aclarar, como sólo veo ejemplos en .net de guardar y cargar preferencias en una actividad, tengo que destacar que es UNA CLASE JAVA de apoyo para guardar enteros especificamente, no es actividad, no hace falta ni declararla como actividad ni tocar el Androidmanifest.xml.

Ejemplos de lo que os comento os los podeis encontrar aquí:
www.sgoliver.net
www.ajpdsoft.com
 
Los links anteriores tratan de una actividad dedicada exclusivamente a manejar las preferencias dentro de la actividad, sin embargo esta clase, es de apoyo para llamarla desde cualquier actividad para manejar las SharedPreferences


import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
public class preferencias extends Activity{
 private Context context;
 //MODO DE PREFERENCIAS
 int mode=MODE_PRIVATE;
 /**
  *  MODE_PRIVATE. Sólo la aplicación tiene acceso a estas preferencias.
     *MODE_WORLD_READABLE. Todas las aplicaciones pueden leer estas preferencias, pero sólo esta puede modificarlas.
     *MODE_WORLD_WRITABLE. Todas las aplicaciones pueden leer y modificar estas preferencias.
  */
 int numero;
  // TODO Auto-generated method stub
  public preferencias(Context context){
   this.context=context;
   if(context!=null){
    SharedPreferences PREFERENCIAS = context.getSharedPreferences("pref", 0);
   }
  }
  protected void savePreferences(int num){
   //Instancio la preferencia
   SharedPreferences PREFERENCIAS=context.getSharedPreferences("pref",mode);
   //Para editar las preferencias
   SharedPreferences.Editor editor=PREFERENCIAS.edit();
   //inserto en preferencia(nombre indice, valor);
   editor.putInt("numero", num);
   //Cierro edición
   editor.commit();
  }
  protected int loadPreferences(){
   //Instancio la preferencia
   SharedPreferences PREFERENCIAS=context.getSharedPreferences("pref",mode);
   //recojo valor
   numero=PREFERENCIAS.getInt("numero", 0);
   System.out.println("NUMERO= "+numero);
   return numero;
  }
}
Ahora bien, desde el MainActivity o desde la clase que la queramos llamar, debemos pasarle el contexto al constructor, para que pueda funcionar, sino lo hacemos así, dará un horroroso NullPointerExcepcion....

 Context context=this;
 preferencias pref;
 pref=new preferencias(context);



Podeis descargar el código fuente de thebestandroide con sólo compartir en facebook,twitter,linkedin o suscribirte a nuestro canal RSS más abajo. 



Compartir Compartir Compartir Compartir