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

martes, 21 de noviembre de 2017

como cambiar el icono de una aplicacion en android studio

Hola amig@s hoy veremos un tutorial básico de como cambiar de forma rápida el icono de nuestra aplicación por una imagen cualquiera que nosotros elijamos.

Primero en nuestra aplicación en android studio vamos a App -->new--> Image Asset




Se nos abrirá una nueva ventana clic en Image, luego en los puntos... del recuadro de Path



Se nos abrirá una nueva ventana demos buscar en el directorio la imagen por la que cambiaremos y luego elegirla, se sugiere que sea en formato png para evitar problemas.



Ahora con el nuevo icono hacemos clic en siguiente luego finish


Y al ejecutar nuestra Apk ya habremos cambiado el icono de nuestra aplicación:

sábado, 11 de noviembre de 2017

web services con php mysql y android- guia basica

Hola amig@s como están les doy un saludo, les comento que a pedido de algunos usuarios hoy veremos una guía super pero super básica de como crear una web services y luego consumir dichos datos hacia nuestra app en android.
Importante: Primero les comento que esto sera super básico para programadores recién iniciándose, así que los super pro seguir su camino, también les dejo una documentación al respecto en este enlace, que es una webservices  peroooo como yo se que eres don vergas y doña vergas (sarcasmo activado) no van a leerlo entonces lo resumimos en una imagen hecha por tecnología alienigena (paint)..


Bien trasladamos a un caso de la vida real supongamos tu el que esta leyendo este tutorial...si tu don vergas que por no leer documentación leerás mi resumen, mira tu eres dueño de un super negocio que hace delivery de frutas y tienes muchos clientes y deseas llegar a todos, y que cosa tienen todos... pues tienen móviles entonces tu deseas que tus clientes compren tus frutas por una app y claro también por tu portal web entonces necesitas gestionar a tus clientes y tus productos y para eso necesitas una base de datos hasta ahí vamos bien pero como conectas la base de datos con tu portal web y la app, pues fácil con una webservices que no es mas que una colección de protocolos y estándares que sirven para intercambiar datos entre aplicaciones, en lenguaje simple nos servirá de puente para nuestras app y portales web, bien mas claro que el agua no puede ser, te he resumido 50 paginas de leer, ahora vamos al caso practico.

Paso 1) Crearemos nuestra base de datos en nuestro phpmyadmin, si eres nuevo te recomiendo que veas estos link primero:

      Como instalar xampp en windows guía

      como funciona phpmyadmin guia basica desde cero


Para nuestra base de datos llamada producto tendremos una tabla llamada fruta con los siguientes atributos id, nombre, color.


Te dejo el código de la base de datos
CREATE TABLE `fruta` (
  `id` int(11) NOT NULL,
  `nombre` varchar(50) NOT NULL,
  `color` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ALTER TABLE `fruta`
  ADD PRIMARY KEY (`id`);

ALTER TABLE `fruta`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;


Ahora necesitamos crear nuestro puente, que digo nuestra webservices que nos servirá para conectar los datos de la BD con nuestra app, para ello crearemos dos archivos uno llamado Conexion.php y otro llamado Registrar.php.

Creamos el archivo Conexion.php
<?php
//Define tu host aquí.
$HostName = "localhost";

//Defina su nombre de usuario de la base de datos aquí.
$HostUser = "root";

//Defina la contraseña de su base de datos aquí.
$HostPass = "12345";

//Defina el nombre de su base de datos aquí.
$DatabaseName = "producto";
?>

Creamos el archivo Registrar.php
<?php

include 'Conexion.php' ;
 
 $con = mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName);
 
 $nombre = $_POST['nombre'];
 $color = $_POST['color'];

 $Sql_Query = "insert into fruta(nombre,color) values ('$nombre','$color')";
 
 if(mysqli_query($con,$Sql_Query)){
 
 echo 'Datos enviados con éxito';
 
 }
 else{
 
 echo 'Inténtalo de nuevo';
 
 }
 mysqli_close($con);
?>

Nuestros archivos php deben estar guardados en una carpeta dentro de nuestro htdocs del xampp yo le llamare a la carpeta frutas y quedara de la siguiente forma:

Creamos nuestra app en Android Studio un nuevo proyecto llamado AppWebServicesBasico


Dejamos con estas opciones y le damos next.


Seleccionamos una nueva actividad en blanco "Empty Activity"  siguiente.

Dejamos nuestro activity con su nombre por defecto MainActivity y clic en finalizar


Ahora vamos a nuestro AndroidManifest y debemos agregar un permiso
Este es el permiso.
<uses-permission android:name="android.permission.INTERNET"/>
Y el documento quedara así:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.androidmorefast.pc.appwebservicesbasico">
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>

</manifest>

Ahora debemos ir a nuestro buil.gradle y abrirlo.
Una vez abierto debemos agregar el siguiente código:
useLibrary'org.apache.http.legacy'
Quedando de la siguiente manera como muestro en la imagen:
Ahora debemos crear la parte gráfica de nuestra app necesitamos dos editText y un botón para tener el siguiente resultado:


Puedes ingresar todo manualmente o te dejo el código entras en modo texto y reemplazas
Reemplazamos el código que hay ahí por este:
<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.androidmorefast.pc.appwebservicesbasico.MainActivity">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:text="Enviar datos al servidor"
            android:textSize="20dp"
            android:textColor="#000000" />

    <EditText
        android:id="@+id/txtNombre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textView"
        android:layout_marginTop="28dp"
        android:ems="10"
        android:gravity="center"
        android:hint="Ingresa Nombre"
        android:inputType="textPersonName" />

    <EditText
        android:id="@+id/txtColor"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtNombre"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="46dp"
        android:ems="10"
        android:gravity="center"
        android:hint="Ingresa Color"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtColor"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:text="Enviar datos " />

    </RelativeLayout>


Ahora a llegado el momento de meter mano al codigo, tu MainActivity.java debería de quedar así.
package com.androidmorefast.pc.appwebservicesbasico;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    String ServerURL = "http://192.168.8.133/Frutas/Registrar.php" ;
    EditText nombre, color;
    Button button;
    String TempNombre, TempColor;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        nombre = (EditText)findViewById(R.id.txtNombre);
        color = (EditText)findViewById(R.id.txtColor);
        button = (Button)findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                ObtenerDatos();

                InsertaDatos(TempNombre, TempColor);

            }
        });
    }

    public void ObtenerDatos(){

        TempNombre = nombre.getText().toString();

        TempColor = color.getText().toString();

    }

    public void InsertaDatos(final String nombre, final String color){

        class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
            @Override
            protected String doInBackground(String... params) {

                String NombreHolder = nombre ;
                String ColorHolder = color ;

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

                nameValuePairs.add(new BasicNameValuePair("nombre", NombreHolder));
                nameValuePairs.add(new BasicNameValuePair("color", ColorHolder));

                try {
                    HttpClient httpClient = new DefaultHttpClient();

                    HttpPost httpPost = new HttpPost(ServerURL);

                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse httpResponse = httpClient.execute(httpPost);
                    HttpEntity httpEntity = httpResponse.getEntity();


                } catch (ClientProtocolException e) {

                } catch (IOException e) {

                }
                return "Datos insertados con éxito";
            }

            @Override
            protected void onPostExecute(String result) {

                super.onPostExecute(result);

                Toast.makeText(MainActivity.this, "Datos enviados con éxito", Toast.LENGTH_LONG).show();

            }
        }

        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();

        sendPostReqAsyncTask.execute(nombre, color);
    }

}


Si revisan el código hay una parte que dice lo siguiente:
String ServerURL = "http://192.168.8.133/Frutas/Registrar.php" ;

Como ven hay una IP esa ip es de mi computadora ustedes deben de averiguar la ip de su computadora y cambiarla por la suya, pues así a la hora de que prueben su aplicación desde su celular o emulador genymotion, la aplicación sabrá que nuestro server se encuentra ahí.
Importante: si usas tu celular, entonces este debe estar conectado vía wifi, para que tanto tu movil como tu pc estén en el mismo rango de Ips.

Bien hasta ahora ya esta funcionando nuestra app movil pero según nuestra imagen de la webservices también deberíamos poder consumir los datos por una web app para ello crearemos un archivo html llamado Registrar.html y lo guardaremos junto a nuestros archivos php


El código del archivo html sera el siguiente:
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Registrando por una web app</title>
</head>
<body>
 <form action="Registrar.php" method="post">
   Nombre :<input maxlength="25" size="25" name="nombre" />
 <br />
   Color:<input maxlength="35" size="25" name="color" />
 <br />
  <input type="submit" value="Registrar" />
 </form>
</body>
</html>

Se vera como la siguiente imagen al seguir la url de la webservices:
http://192.168.8.133/Frutas/Registrar.html


En cualquier caso ya se por la app movil o por la app web debe registrar los datos que le enviamos:

martes, 7 de noviembre de 2017

como mantener una aplicacion en horizontal o vertical en android studio

Hola amig@s programadores hoy veremos un tutorial rapido y sencillo pero muy util para aquellos que quiere tener su aplicación ya sea en horizontal o vertical.
Aveces necesitamos por x motivos que nuestra aplicación se que quede solo en vertical u horizontal, entonces esta es tu guía:

como mantener una aplicación en horizontal en android studio




Deben ir a su AndroidManifest e incluir este código:

android:screenOrientation="landscape"



como mantener una aplicación en Vertical en android studio


Deben ir a su AndroidManifest e incluir este código:


android:screenOrientation="portrait"


OJO: el código que les estoy mostrando debe agregarse dentro de activity en ningún otro lado osea así:

 <activity android:name=".MainActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

        </activity>

Y si necesitamos que giren en ambos lados, no agreguemos nada eso dependerá del usuario, pues tendrá que activar su Rotación del móvil.

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:

 

Copyright @ 2015 AndroFast.

Designed by Draganus | AndroFast