CatVodSpider/app/src/main/java/com/github/catvod/spider/Notice.java

79 lines
2.3 KiB
Java

package com.github.catvod.spider;
import android.content.Context;
import android.graphics.Color;
import android.graphics.Typeface;
import android.view.Gravity;
import android.widget.FrameLayout;
import com.github.catvod.crawler.Spider;
import com.github.catvod.ui.ScrollTextView;
import com.github.catvod.utils.Utils;
import java.util.Random;
public class Notice extends Spider {
private static final String SPACE = " ";
private ScrollTextView view;
private String text;
private int time;
@Override
public void init(Context context, String extend) {
super.init(context, extend);
String[] splits = extend.split(";");
this.text = splits[0];
this.time = splits.length > 1 ? Integer.parseInt(splits[1]) : 30;
}
@Override
public String homeContent(boolean filter) throws Exception {
Init.run(this::createView);
return "";
}
private void createView() {
createLayout();
createText();
setColor();
hide();
}
private void createLayout() {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.TOP;
Utils.addView(view, params);
}
private void createText() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 2; i++) sb.append(SPACE).append(text);
view = new ScrollTextView(Init.context());
view.setTextSize(20);
view.setDuration(time);
view.setText(sb.toString());
view.setTypeface(null, Typeface.BOLD);
view.setPadding(0, Utils.dp2px(16), 0, Utils.dp2px(16));
view.setBackgroundColor(Color.argb(200, 255, 255, 255));
view.startScroll();
}
private void hide() {
Init.run(() -> Utils.removeView(view), time * 1000);
}
private void setColor() {
Init.run(runnable, 500);
}
private final Runnable runnable = new Runnable() {
@Override
public void run() {
Random random = new Random();
view.setTextColor(Color.argb(255, random.nextInt(128), random.nextInt(128), random.nextInt(128)));
setColor();
}
};
}