<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
<uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
public class LrcTextView extends TextView {
private final String TAG = LrcTextView.class.getSimpleName();
public static int TOOL_BAR_HIGH = 0;
public static WindowManager.LayoutParams params = new WindowManager.LayoutParams();
private WindowManager wm = (WindowManager)getContext().getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
private String text;
private float float1 = 0.0f;
private float float2 = 0.01f;
public LrcTextView(Context context) {
super(context);
text = "点我随机移动";
this.setBackgroundColor(Color.argb(90, 150, 150, 150));
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
float1 += 0.001f;
float2 += 0.001f;
if(float2 > 1.0){
float1 = 0.0f;
float2 = 0.01f;
}
this.setText("");
float len = this.getTextSize() * text.length();
Shader shader = new LinearGradient(0, 0, len, 0,
new int[] { Color.YELLOW, Color.RED }, new float[]{float1, float2},
TileMode.CLAMP);
Paint p = new Paint();
p.setShader(shader);
p.setTypeface(Typeface.DEFAULT_BOLD);
canvas.drawText(text, 0, 10, p);
}
public void updatePosition(int x, int y){
params.x = x;
params.y = y;
wm.updateViewLayout(this, params);
}
}