Mostrando entradas con la etiqueta basico. Mostrar todas las entradas
Mostrando entradas con la etiqueta basico. Mostrar todas las entradas

lunes, 14 de agosto de 2017

Como utilizar la cámara del celular en android studio

hola amig@s hoy veremos un tutotial pequeño sobre como utilizar la cámara del celular en android studio, teníamos un post similar pero algo antiguo y había que actualizar y organizarlo un poco, ya saben conforme uno va aprendiendo va mejorando su código, en fin empezamos.
Debemos agregar unos permisos en nuestro AndroidManifest.xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Ahora debemos agregar un boton y un ImageView y quedara de la siguiente forma:


El botón tendrá por id btnCaptura y el imageView tendrá por id imagen.

Bueno si te pasas de flojo te dejo el código:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">


    <ImageView
        android:id="@+id/imagen"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/btnCaptura"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        app:srcCompat="@android:color/background_dark" />

    <Button
        android:id="@+id/btnCaptura"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Tomar Foto"
        android:layout_marginBottom="77dp"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/imagen"
        android:layout_alignStart="@+id/imagen" />
</RelativeLayout>

Bueno ahora si nos queda trabajar la programación así que iremos a nuestro MainActivity.java
public class MainActivity extends Activity implements OnClickListener{

    Button btn;
    ImageView imagen;
    Intent i;
    final  static int cons =0;
    Bitmap bmp;
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    checkCameraPermission();
    init();

   }
   public void init(){
     btn = (Button)findViewById(R.id.btnCaptura);
       btn.setOnClickListener(this);

       imagen = (ImageView)findViewById(R.id.imagen);
   }

    private void checkCameraPermission() {
        int permissionCheck = ContextCompat.checkSelfPermission(
                this, Manifest.permission.CAMERA);
        if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
            Log.i("Mensaje", "No se tiene permiso para la camara!.");
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, 225);
        } else {
            Log.i("Mensaje", "Tienes permiso para usar la camara.");
        }
    }
   public void onClick(View v){
       int id;
       id=v.getId();
       switch (id){
           case R.id.btnCaptura:
               i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
               startActivityForResult(i,cons);
               break;
       }
   }
   @Override
    protected  void onActivityResult(int requestCode, int resultCode, Intent data){
       super.onActivityResult(requestCode,resultCode,data);
       if (resultCode==Activity.RESULT_OK){
           Bundle ext = data.getExtras();
           bmp = (Bitmap)ext.get("data");
           imagen.setImageBitmap(bmp);
       }
   }

}

Bueno y que hay de nuevo en esta version a la antigua, aqui agregamos unos permisos en un método llamado checkCameraPermission el cual nos pedirá en una nueva venta el permiso correspondiente si podemos usar o no la cámara y con eso no se detendrá la aplicación y tampoco dará otros errores.



y el producto final seria algo así:

Igual si piensas que hablo escribo en chino te dejo el ejercicio:

  Link de la descarga
Programador alfa, lomo plateado, barba de clavos, mentón de roca, no descarga la aplicación sigue el tutorial. Clic para DESCARGAR

     
ENLACES DE INTERÉS:

miércoles, 26 de julio de 2017

Como importar una libreria en android studio

hola amig@s programadores hoy veremos un tema muy interesante, he visto en los programadores novatos tener mucho problemas a la hora que quieren exportar sus librerías externas mejor dicho los archivos .jar  y cuando buscan información al respecto y luego no les funciona su copia y pega empiezan a llorar buuuu, así que hoy lo explicaremos de forma detallada y con manzanitas para dar por cerrado este tema.

Empezamos nos llevara un aproximado de 3 minutos.

Cómo importar librerías .jar en Android Studio



  • Una vez situado en tu proyecto Android Studio, ve a la carpeta "libs" en caso de no existir crea la carpeta a la altura de build y src.



  • Una vez hayas creado esta carpeta, ya podrás añadir todos tus archivos con extensión .jar


      Pero esto no termina aquí, porque el siguiente paso es muy importante, necesitas añadir las dependencias a Build.gradle (Module:app).



  • En este ejemplo añadimos la librería frutas.jar Para ello, añadimos el siguiente código en Build.gradle, en dependencies(). Se hace igual para cualquier librería:
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.3.0'
    compile files('libs/frutas.jar')
}

Si analizamos un poco nos damos cuenta que empezamos con el compile files luego le indicamos que esta en la carpeta libs para luego indicarle que le haremos referencia al archivo frutas.jar

AH! PILLIN  aun no acabamos falta lo mas importante 

  • Y por último, tras añadir este trocito de código, necesitas hacer la sincronización del proyecto con el gradle. Te saldrá un aviso en amarillo en la parte superior, puedes hacer clic en “Sync Project with Gradle Files“.

Lo vemos en la siguiente imagen:

                                                           Clic para agrandar la imagen


No tendremos que hacer nada más que esto para tener las librerías que necesitemos en Android. Bueno cuídense mucho y no se rompan la cabeza:

NOTA: una vez un usuario siguió esta guía y ya quería llorar porque no le funcionaba, adivinen que? descargo mal la librería jajajajaja xD


ENLACES DE INTERÉS:


Como importar fuentes a android studio

Hola amig@s programadores siempre a la hora de hacer un proyecto necesitamos darle la mejor vista que podemos y entre ellas siempre es bueno ver la escritura, es un detalle que podria traerte mas cliente o impresionar a tu jefe. Para ello hoy veremos Como insertar tipos de fuentes en Android Studio.

Bien sin mas rodeos empezamos con el Tuto que nos llevara aproximadamente dos minutos:


  • Sitúate en app > src > main.
  • Crea el directorio “assets” (a la misma altura de java y res). Dentro de assets, crea la carpeta “fonts”, y a su vez, dentro, crea/importa el archivo “nombre_fuente.ttf”.






Es en la carpeta fonts, dónde tendrás que arrastrar la fuente concreta que quieras usar con la extensión .ttf. Si buscas por la red, encontrarás un montón de ZIP con fuentes, que puedes arrastrar y colocar dentro de assets, para luego solo llamar a las fuentes que tu quieras desde la aplicación. Si tienes dudas con algo de esto, puedes preguntarnos abajo en los comentarios.


¿CÓMO USO LA FUENTE QUE ACABO DE IMPORTAR?

Typeface face=Typeface.createFromAsset(getAssets(),"fonts/nombre_fuente.ttf");
txtV.setTypeface(face);

Tan solo tendrás que pegar ese código en la Activity en que quieras usar la nueva fuente. Y acuérdate de cambiar el nombre anterior por el nombre de tu fuente, podrás importar las fuentes que quieras. ¡Espero que te haya servido y que lo disfrutes!


Y con eso hemos terminado amigos, cuídense y nos vemos en un próximo tutorial.


sábado, 1 de abril de 2017

Como utilizar y diseñar un seekbar en android studio

Hola chicos hoy veremos como utilizar un SeekBar, pero que es un Seekbar?. Es una herramienta de android(extension de ProgressBar) que permite la selección de valores enteros utilizando una interfaz de usuario natural. Básicamente SeekBar tiene una perilla que se puede deslizar para elegir un valor entre 0 y algún máximo que ha establecido.(1-100) Si quieren profundizar en el tema revisen el siguiente enlace Aquí.


SeekBar

Empezamos con un ejercicio sencillo:

Activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="20dp"
    android:gravity="center"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/txtCargar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:gravity="center"
        android:text="Ejemplo SeekBar"
        android:textColor="#000"
        android:textSize="50sp"  />

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:background="#ccc"
        android:layout_margin="20dp" />

</LinearLayout>


MainActivity.java

public class MainActivity extends AppCompatActivity {

    private TextView mostrarPorcentaje;
    private SeekBar seekBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mostrarPorcentaje = (TextView)findViewById(R.id.txtCargar);

        // SeekBar
        seekBar = (SeekBar)findViewById(R.id.seekbar);
        // Valor Inicial
        seekBar.setProgress(0);
        // Valot Final
        seekBar.setMax(100);
        seekBar.setOnSeekBarChangeListener(
                new SeekBar.OnSeekBarChangeListener() {
                    //hace un llamado a la perilla cuando se arrastra
                    @Override
                    public void onProgressChanged(SeekBar seekBar,
                                                  int progress, boolean fromUser) {
                        mostrarPorcentaje.setText(String.valueOf(progress)+" %");
                    }

                    //hace un llamado  cuando se toca la perilla
                    public void onStartTrackingTouch(SeekBar seekBar) {
                    }

                    //hace un llamado  cuando se detiene la perilla
                    public void onStopTrackingTouch(SeekBar seekBar) {
                    }
                });
    }
}


Los valores iniciales y máximo, respectivamente:
seekBar.setProgress (0);
seekBar.setMax (100);


PERSONALIZAR

Veremos que se puede personalizar fácilmente.

Cambiar el color de fondo:
Cambiar e icono de la perilla.
Personalizar en el fondo.

Fondo
<SeekBar
    android:id="@+id/seekbar"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="#faa"
    android:layout_margin="20dp" />





Cambiar e icono de la perilla.

Debemos poner un icono en la carpeta Drawable y luego hacer la llamada desde nuestro xml.

android:thumb="@drawable/icono_personalizado"


<SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:thumb="@drawable/icono_peronalizado"
        android:background="#ccc"
        android:layout_margin="20dp" />


Personalizar el Fondo

En nuestra carpeta drawable debemos crear un archivo llamado gestionar_seekbar.xml y debe contener lo siguiente.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape android:shape="rectangle">
            <solid android:color="#888"/>
            <corners android:radius="8dp" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape android:shape="rectangle">
                <solid android:color="#04f"/>
                <corners android:radius="8dp" />
            </shape>
        </clip>
    </item>
</layer-list>
Debemos llamarlo en nuestro activity_main.xml y quedaria de la siguiente forma:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="20dp"
    android:gravity="center"
    tools:context=".MainActivity">
 
    <TextView
        android:id="@+id/txtCargar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="20dp"
        android:gravity="center"
        android:text="Ejemplo SeekBar"
        android:textColor="#000"
        android:textSize="50sp"  />
 
    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:progressDrawable="@drawable/gestionar_seekbar"
        android:background="#ccc"
        android:layout_margin="20dp" />
 
</LinearLayout>
Y el producto final seria algo como la siguiente  imagen, espero les haya gustado:
ENLACES DE INTERÉS:

lunes, 27 de marzo de 2017

Cómo personalizar listas (ListView) en Android Studio

¿Quieres personalizar listas o listView en Android Studio? cuando yo inicie en la programación con android e implante mi primer ListView y compare con otros ejercicios de programadores mas avanzados me di cuenta que el mio era una porquería jajaja y por entonces no había muchas guías y recuerdo que se trabaja en eclipse, entonces en honor a ese recuerdo hoy te voy a enseñar una bonita forma de crear listas más personalizadas y con un estilo propio, alejándonos de las clásicas listas de Android Studio. Además, esto nos permitirá añadir imágenes o botones entre muchas otras cosas a las listas.

Después de haber visto cómo lanzar un segundo activity, crear un adapter personalizado en Android Studio será como comer pizza gratis, así que vamos a ver cómo crearlos.

Crear lista/adapter personalizado en Android Studio

Para crear un adapter personalizado, y muy básico, en Android vamos a ver un sencillo ejemplo con una lista de frutas en la que mostraremos un ImageView y un TextView.

Primero te aconsejo crear un nuevo proyecto para no tener problemas con otras clases y después lo puedes portar a dónde tú quieras. Para que te hagas una idea, el resultado final sería algo como esto, un ejemplo de lista personalizada en Android Studio.

LISTA (LISTVIEW) PERSONALIZADA EN ANDROID STUDIO


PASO 1: Tenemos que ir a nuestro activity_main.xml e insertar un texView para el titulo y un listView para mostrar la lista y se vera de la siguiente forma

.

Y el código seria el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.androidmorefast.pc.appdiseniolistview.MainActivity"
    android:orientation="vertical">

    <TextView
        android:text="LISTA DE FRUTAS"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="24dp"
        android:textStyle="bold"
        android:id="@+id/textView" />

    <ListView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/lvListado" />
</LinearLayout>


Ahora debemos crear un archivo layout que nos servirá para modelar mejor el diseño de la lista,
la creamos de la siguiente forma: clic sobre layout--new--Layout resource file como se muestra en la siguiente imagen

                           Clic en la imagen para agrandar


Este nuevo layout le pondremos de nombre lista_frutas.xml dentro de el ira un texView y una imageView

CÓDIGO:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/imgFrutas"
        android:layout_gravity="center"
        android:layout_width="48dp"
        android:layout_height="48dp" />

    <TextView
        android:id="@+id/textView"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="25dp"
        android:text="textView" />

</LinearLayout> 
PASO 2: Ahora nos toca trabajar con nuestras clases, así que iremos primero a nuestro MainActivity.java y tendrá el siguiente código:

public class MainActivity extends Activity {

    ListView lista;
    Context context;

    ArrayList prgmNombre;
    public static int [] prgmImages={R.drawable.banana,R.drawable.coco,
        R.drawable.manzana,R.drawable.pera,R.drawable.sandia,R.drawable.uva};
    public static String [] progNombreLista={"BANANA","COCO++","MANZANA","PERA",
                                          "SANDIA","UVA"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        context=this;

        lista=(ListView) findViewById(R.id.lvListado);
        lista.setAdapter(new GestionarAdapter(this, progNombreLista,prgmImages));

    }

}
Ahora también debemos crear una nueva clase java a la cual llamaremos GestionarAdapter.java  se crea de la siguiente forma como se muestra en la imagen:



y tendrá el siguiente código:

public class GestionarAdapter extends BaseAdapter {
    String[] resultado;
    int[] imgId;
    Context contexto;

    private static LayoutInflater inflater= null;
    public GestionarAdapter (MainActivity mainActivity,String[]progNombreLista,int[]progImg) {
        resultado = progNombreLista;
        contexto = mainActivity;
        imgId = progImg;
        inflater = (LayoutInflater) contexto.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

          }
    @Override
        public int getCount(){
           return resultado.length;
        }
    @Override
        public  Object getItem(int posicion) {
            return posicion;
        }
    @Override
       public  long  getItemId(int posicion) {
        return posicion;
        }
    public class Holder
    {
        TextView tv;
        ImageView img;
    }
    @Override
    public View getView(final int posicion, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub
        Holder holder=new Holder();
        View fila;
        fila = inflater.inflate(R.layout.lista_frutas, null);
        holder.tv=(TextView) fila.findViewById(R.id.textView);
        holder.img=(ImageView) fila.findViewById(R.id.imgFrutas);
        holder.tv.setText(resultado[posicion]);
        holder.img.setImageResource(imgId[posicion]);
        fila.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Toast.makeText(contexto, "Seleccionaste "+resultado[posicion],
                 Toast.LENGTH_LONG).show();
            }
        });
        return fila;
    }

}


Bien y con eso hemos terminado, espero les ayude a mejorar sus ejercicios y futuros proyectos.

 Link de la descarga
Programador alfa, lomo plateado, barba de clavos, mentón de roca, no descarga la aplicación sigue el tutorial. Clic para DESCARGAR

     
ENLACES DE INTERÉS:

lunes, 20 de marzo de 2017

Cómo llamar a una Activity desde un fragment

Estoy respondiendo a un amigo de Ecuador la duda que tenia. Hoy les voy a contar cómo llamar un Activity desde fragment. Si estás programando en Android y estás en medio de un fragmento, seguro que terminas haciéndote esta pregunta. ¿Como llamar a un activity des un fragment?

Ya desde hace unas cuantas APIs atrás tenemos los fragmentos para programar apps Android más bonitas. Pero si estás programando y estás dentro de un fragmento, verás que si pones el código de siempre para invocar la actividad no te va a funcionar. Aquí tenemos una guía de cómo pasar de un layout a otro, pero se hace distinto.

En este tutorial, voy a contarte rápidamente como hago siempre. Empezamos el tuto porque verás que es muy fácil:

PASO 1: Debemos crear nuestro fragment e insertar un botón dentro.



Editamos nuestro activity_main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:text="ENTRAR"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn1" />
</FrameLayout>


También debemos crear otro activity, deben hacerlo como muestro en la siguiente imagen, yo le puse de nombre SegundoActivity.

Hacer clic en la imagen para ver mejor
 


Ahora debemos ir a nuestro MainActivity.java y empezar con el código del ejercicio.

public class MainActivity extends FragmentActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        controlador();
    }
    public void controlador() {

        Button entry = (Button) findViewById(R.id.btn1);

        //hago clic y se abre el 2
        entry.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this.getBaseContext(), 
                SegundoActivity.class);
                startActivity(intent);
            }
        });
    }


}



Si observamos un poco el código arriba vemos que hay gran diferencia cuando hacíamos entre Activity y Activity:

Intent ListFruta = new Intent(getApplicationContext(), SegundoActivity.class);
     startActivity(ListFruta );

Y el cambio  de Fragment a Activity es fácil:

Intent ListFruta = new Intent(MainActivity.this.getBaseContext(),SegundoActivity.class);
                startActivity(ListFruta );


Igual si piensas que hablo escribo en chino te dejo el ejercicio:

  Link de la descarga
Programador alfa, lomo plateado, barba de clavos, mentón de roca, no descarga la aplicación sigue el tutorial. Clic para DESCARGAR

     
ENLACES DE INTERÉS:

 

Copyright @ 2015 Android-facil.

Designed by Draganus | AndroidFacil