Skip to content

Instantly share code, notes, and snippets.

View gbzarelli's full-sized avatar
Coding...

Guilherme Biff Zarelli gbzarelli

Coding...
View GitHub Profile
@gbzarelli
gbzarelli / styles.xml
Last active April 11, 2018 17:40
Exemplo de customização de layout usando o Theme.AppCompat, customização de actionbar, toolbar,textview, buttons e edittext
<resources>
<!-- TEMA BASE -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<item name="android:windowFullscreen">true</item>
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!--<item name="android:textColorPrimary">@color/color_text_toolbar</item>-->
@gbzarelli
gbzarelli / DrawableTintProgramatically.kt
Last active March 1, 2018 19:13
Definir tint programaticamente
val drawable = ContextCompat.getDrawable(activity, R.drawable.crosshairs_gps)
drawable!!.mutate().setColorFilter(Color.YELLOW, PorterDuff.Mode.SRC_IN)
@gbzarelli
gbzarelli / AjustStreamVolume.java
Last active March 26, 2018 18:37
Ajusta volume de audio do sistema com UI tipo Toast de forma nativa
/**
FLAG_SHOW_UI
Show a toast containing the current volume.
See also:
adjustStreamVolume(int, int, int)
adjustVolume(int, int)
setStreamVolume(int, int, int)
setRingerMode(int)
*/
@gbzarelli
gbzarelli / FutureTask.java
Created April 4, 2018 21:35
FutureTask é uma implementação da interface Future a ser executada numa chamada em paralelo. Sendo possível cancelar a execução de uma tarefa, descobrir se a execução já terminou com sucesso ou erro, entre outras operações.
public void sampleFutureTask(final int processamentoMillis, final Integer timeOutMillis) throws ExecutionException, InterruptedException, TimeoutException {
FutureTask<String> futureTask = new FutureTask(() -> {
try {
Thread.sleep(processamentoMillis);//PROCESSAMENTO
System.out.println(Thread.currentThread().getName() + " - finalizado");
} catch (InterruptedException ex) {
}
return "retorno";
});
new Thread(futureTask, "futureTask").start();
@gbzarelli
gbzarelli / AnotacoesTypedef.md
Last active April 13, 2018 19:17
Anotações Typedef - Use as anotações @IntDef e @stringdef para poder criar anotações enumeradas de conjuntos de números inteiros e strings para validar outros tipos de referência de código. As anotações Typedef garantem que determinado parâmetro, valor de retorno ou campo referencie um conjunto específico de constantes. Elas também permitem que …

Anotações Typedef

Use as anotações @IntDef e @StringDef para poder criar anotações enumeradas de conjuntos de números inteiros e strings para validar outros tipos de referência de código. As anotações Typedef garantem que determinado parâmetro, valor de retorno ou campo referencie um conjunto específico de constantes. Elas também permitem que o preenchimento de código ofereça automaticamente as constantes permitidas. As anotações Typedef usam @interface para declarar o novo tipo de anotação enumerada. As anotações @IntDef e @StringDef, junto com a @Retention, inserem a nova anotação e são necessárias para definir o tipo enumerado. A anotação @Retention(RetentionPolicy.SOURCE) instrui o compilador a não armazenar os dados da anotação enumerada no arquivo .class.

Não utilize ENUM

Cada valor em um ENUM é um objeto e cada declaração terá alguma memória de tempo de execução simplesmente para referenciar o objeto. Portanto, os valores de ENUM terão mais memória do que a constante Integer ou String. Me

@gbzarelli
gbzarelli / .MediaButtonListen.md
Last active April 11, 2018 11:38
Like listening to the button action of the headset.

Like listening to the button action of the headset.

  • implement in your BroadcastReceiver;
  • Register in manifest;
  • Using AudioManager to register Listener;
@gbzarelli
gbzarelli / .CustomButtom.md
Last active April 11, 2018 17:24
Android Material Design Button Styles

With the Support Library v7, all the styles are actually already defined and ready to use, for the standard buttons, all of these styles are available:

style="@style/Widget.AppCompat.Button"
style="@style/Widget.AppCompat.Button.Colored"
style="@style/Widget.AppCompat.Button.Borderless"
style="@style/Widget.AppCompat.Button.Borderless.Colored"

Step 1: Define the system colors in your style. (The buttom with above styles use accent color)

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>

@color/colorPrimaryDark

@gbzarelli
gbzarelli / Chronometer.kt
Last active April 20, 2018 12:02
Widget Chronometer with millisecounds
package br.com.helpdev.chronometerlib.widget
import android.content.Context
import android.os.Handler
import android.os.Looper
import android.os.Message
import android.os.SystemClock
import android.support.v7.widget.AppCompatTextView
import android.util.AttributeSet
@gbzarelli
gbzarelli / TextInputLayout_TextInputEditText.txt
Created April 24, 2018 18:10
Styling TextInputLayout and TextInputEditText on Android
https://stackoverflow.com/questions/30824009/change-edittext-hint-color-when-using-textinputlayout/30824183
http://alexzh.com/tutorials/password-visibility-toggle/
android:textColorHint="#FFFFFF" sometime works and sometime doesnt. For me below solution works perfectly
Try The Below Code It Works In your XML file and TextLabel theme is defined in style.xml
@gbzarelli
gbzarelli / CircleImageView
Last active April 25, 2018 16:11
A circular ImageView for Android
https://github.com/hdodenhof/CircleImageView
Gradle
dependencies {
...
implementation 'de.hdodenhof:circleimageview:2.2.0'
}
Usage