Sintaxis resaltada Javascript y CSS en Android Studio

En la versión gratuira de Android Studio no existe un asociación de ficheros hacia javascript ni a hojas de estilos. Por tanto, cuando nos toca escribir en ese entorno, con dichos lenguajes, tenemos que escribirlo sin ningun resaltado ni ayuda de ningún tipo. Esto puede pasar para programadores de Phonegap/Cordova sobre AS.

Si no te gusta escribir en el bloc de notas y no quieres tener abierto a la vez, AS con Sublime Text o similares, puedes añadir un plugin a AS, que se encargue de decorarnos el código.

A mano con el editor

Una opción es hacerlo a manita, desde AS, en File -> Settings -> FileTypes y creando tanto en JS como el CSS, añadiendo una a una, todas las palabras reservadas.


settings

js

js2

 

A mano editando el XML de configuración

Puedes crear tu propio XML de configuración e importarlo desde File->Import Settings.

Estos ficheros se encontrarán en la ruta de Android Studio, en su carpeta config.

Tendrá un aspecto similar a este:

<?xml version="1.0" encoding="UTF-8"?>
<filetype binary="false" default_extension="" description="Javascript" name="Javascript">
  <highlighting>
    <options>
      <option name="LINE_COMMENT" value="//" />
      <option name="COMMENT_START" value="/*" />
      <option name="COMMENT_END" value="*/" />
      <option name="HEX_PREFIX" value="" />
      <option name="NUM_POSTFIXES" value="" />
      <option name="HAS_BRACES" value="true" />
      <option name="HAS_BRACKETS" value="true" />
      <option name="HAS_PARENS" value="true" />
      <option name="HAS_STRING_ESCAPES" value="true" />
    </options>
    <keywords keywords="break;case;catch;continue;debugger;default;delete;do;else;finally;for;function;if;in;instanceof;new;return;switch;this;throw;try;typeof;var;void;while;with" ignore_case="false" />
  </highlighting>
  <extensionMap>
    <mapping ext="js" />
  </extensionMap>
</filetype>

Importar librerías ya hechas

Si no quieres escribirte tu propio plugin, puedes obtener alguno de los que hay en la red, por ejemplo.

Libreria js y css para Android Studio de peter-schmalfeldt

Escrito por peter-schmalfeldt y que aceptará gustoso colaboraciones.

Antes y después

Para que se vea claro, pongo dos imágenes del mismo código antes y despues. Hemos ganado.

Antes

ejemplo2
 

Despues

ejemplo

 

 

Quitar bordes de un ImageButton en Android

Si asignamos una imágen a la propiedad src de un ImageButton, se añadirá perfectamente, pero si nos fijamos veremos un borde rectangular que sobresale por los lados y que no se quita ni aunque asignemos los padding a cero. Si la imágen es redondeada y con transparencias aún se verá mas. Adjunto una imágen de un proyecto que estoy haciendo donde se ve dicho borde por defecto en color gris.

Captura

Bien. Esa esquina que aparece pertenece al background. Si lo establecemos en rojo, se verá muy claramente como aparece por detrás de la imágen asignada en el src.

2

 

Para que no aparezca debemos indicarle que no queremos que se use el background, por tanto lo asignamos a @null y desaparecerá.

3

 

 

 

Añadir una Font en Android

Hay varias formas, pero ninguna es demasiado sencilla de usar. Con todo lo bueno que tiene Android Studio, parece dificil que no se haya incluido una forma mas sencilla de incrustar fuentes.

La que resumo aquí para copiar y pegar, es basicamente asignarla objeto por objeto.
Esto se puede mejorar mucho claro, pero ya será en otro artículo mas en detalle.

Al final igualmente tendremos que crear un Typeface nuevo, con la fuente que queremos cargar. Dicha fuente deberá estar bajo la carpeta Assets. Es posible, si usas Android Studio, que no encuentres la carpeta Assets dentro de Main. Si te aparece el siguiente error en ejecución, creala.

 java.lang.RuntimeException: native typeface cannot be made at 
android.graphics.Typeface.<init>(Typeface.java:175) at 
ndroid.graphics.Typeface.createFromAsset(Typeface.java:149)

Debería quedarte algo así:
Captura

Ahora vamos al código que crea el Typeface y lo asignamos a nuestro botón.

 

 
String fontPath = "fonts/armalite_rifle.ttf"; 
final Button b = (Button) findViewById(R.id.botonEjemplo ); 
Typeface tf = Typeface.createFromAsset( this.getAssets(), fontPath); 
b.setTypeface(tf); 

Podeis trastear con las rutas que utilizará el método createFromAsset. Lo tenéis en el app.iml, en la línea.

 

<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />