Record a video of your app
Developer options -> Check show touches
adb shell screenrecord /sdcard/video.mp4
adb pull /sdcard/video.mp4
import android.graphics.Color; | |
import android.support.design.widget.TextInputLayout; | |
import android.text.Editable; | |
import android.text.Layout; | |
import android.text.SpannableStringBuilder; | |
import android.text.Spanned; | |
import android.text.TextWatcher; | |
import android.text.style.AlignmentSpan; | |
import android.text.style.ForegroundColorSpan; |
in the root project's build.gradle: | |
ext { | |
compileSdkVersion = 19 | |
buildToolsVersion = "19.0.1" | |
} | |
in all the android modules: | |
android { |
package com.example.widgets; | |
import android.content.Context; | |
import android.content.res.ColorStateList; | |
import android.content.res.TypedArray; | |
import android.util.AttributeSet; | |
import android.widget.ImageView; | |
import com.example.R; |
public abstract class CachedRefreshable<P, T> extends Refreshable<P, T> { | |
protected abstract Observable<T> getSourceObservable(P parameters); | |
/** | |
* Return the Observable that gets data from a cached source. | |
* | |
* @return Observable from cache item, or null if the cache misses. | |
*/ | |
protected abstract Observable<T> getCachedObservable(P parameters); |
int xPos = (canvas.getWidth() / 2); | |
int yPos = (int) ((canvas.getHeight() / 2) - ((textPaint.descent() + textPaint.ascent()) / 2)) ; | |
//((textPaint.descent() + textPaint.ascent()) / 2) is the distance from the baseline to the center. | |
canvas.drawText("Hello", xPos, yPos, textPaint); |
# built application files | |
*.apk | |
*.ap_ | |
# files for the dex VM | |
*.dex | |
# Java class files | |
*.class |
public void copyFileOrDir(String path) { | |
AssetManager assetManager = this.getAssets(); | |
String assets[] = null; | |
try { | |
assets = assetManager.list(path); | |
if (assets.length == 0) { | |
copyFile(path); | |
} else { | |
String fullPath = "/data/data/" + this.getPackageName() + "/" + path; | |
File dir = new File(fullPath); |