Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: Crear botón en forma

¿Cómo puedo crear un botón personalizado como este?

Introduzca aquí la descripción de la imagen

Debe ser sólo el área clicable no un botón real.

    4 Solutions collect form web for “Android: Crear botón en forma”

    Guardar eso como un png y y ponerlo en su carpeta drawables. Entonces en su xml utilice algo como esto

    <Button android:height="wrap_content" android:width="wrap_content" android:background="@drawable/your_png" /> 

    No estoy 100% seguro de que el corte de esquina va a funcionar correctamente. Esa zona de esquina que se ha ido puede terminar siendo clicable. Si ese es el caso y si usted no quiere que sea entonces usted tendrá que cortar su imagen a la mitad en algún lugar crear dos botones que puede establecer junto a la otra para que la forma y utilizar el mismo oyente de clics para ambos. Desde la perspectiva de los usuarios seguirá siendo como un botón.

    Yo uso un crapload de botones de forma irregular en mi aplicación, y para cambiar la "zona caliente" o "área de clic" del botón, sólo uso el método Bitmap.getPixel() para comprobar el alfa en la imagen utilizada. Si el método devuelve 0, no realice el evento de clic.

    Ejemplo: (1) Cree su botón como de costumbre, de la manera que desee. (2) Definir un Bitmap y asignarle la misma imagen dibujable utilizada para el botón. (3) Obtenga las coordenadas X e Y de la acción táctil o de clic. (4) Pase las coordenadas al .getPixel(x,y) .

    Código de muestra:

     // ** Declare your Bitmap somewhere ** final Bitmap TheBitmap; TheBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.TheImage); // ** My onTouch code ** public boolean onTouch(View v, MotionEvent event) { int eventPadTouch = event.getAction(); switch (eventPadTouch) { case MotionEvent.ACTION_DOWN: if (iX>=0 & iY>=0 & iX<TheBitmap.getWidth() & iY<TheBitmap.getHeight()) { // ** Makes sure that X and Y are not less than 0, and no more than the height and width of the image. if (TheBitmap.getPixel(iX,iY)!=0) { // * A non-alpha area was clicked, do something } } return true; } return false; } 

    El event.getX() y event.getY() simplemente le dan las coordenadas de donde tocó el botón.

    ** La muestra anterior es para guiarlo en la dirección correcta. Hay algunas comprobaciones para agregar al código para asegurar que no se produzcan errores.

    Ceate usando su propio lienzo o hacer una imagen usando photoshop como este y luego usar Bitmap.createScaledBitmap escala de acuerdo a la dimensión de su botón y por lo tanto obtendrá este botón. Usando el lienzo usted tiene que escribir más código apenas hace esto trabajará muy bien

    Basta con crear una imagen como esa y puede utilizar ImageView o Button sin texto e implementar OnClickListener . Simplemente funciona!

      FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.