package aweme.custom; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.GradientDrawable; import android.widget.LinearLayout; import android.widget.TextView; import java.util.Random; import util.ViewUtil; /** * Created by Administrator on 2018/7/26. */ public class CustomLabelTextView extends LinearLayout{ private int colorLeft = Color.parseColor("#58575c"); private int colorRight = Color.parseColor("#61a52a"); public String leftText; public String rightText; private Context mContext; private String colorLeftString; private String colorRightString = "#61a52a"; public CustomLabelTextView(Context context, String leftText, String rightText) { super(context); this.mContext = context; this.leftText = leftText; this.rightText = rightText; init(); } public CustomLabelTextView(Context context, String leftText, String rightText, String colorLeft, String colorRight){ super(context); this.mContext = context; this.leftText = leftText; this.rightText = rightText; this.colorLeft = Color.parseColor(colorLeft); this.colorRight = Color.parseColor(colorRight); this.colorLeftString = colorLeft; this.colorRightString = colorRight; init(); } private void init(){ this.setOrientation(HORIZONTAL); this.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, dp2px(28))); this.setPadding(dp2px(10), 0, 0, 0); LayoutParams tv_params = new LayoutParams(LayoutParams.WRAP_CONTENT, dp2px(24)); TextView tv_left = new TextView(mContext); tv_left.setText(leftText); tv_left.setTextColor(Color.WHITE); tv_left.setClickable(true); tv_left.setPadding(dp2px(10), dp2px(2), dp2px(10), dp2px(2)); GradientDrawable drawable1 = ViewUtil.createGradientDrawableRadius(2, new float[]{14, 14, 0, 0, 0, 0, 14, 14}, colorLeft); drawable1.setColor(ViewUtil.createColorStateList( Color.parseColor("#58575c"), Color.parseColor("#ae58575c"), Color.parseColor("#58575c"), Color.parseColor("#a158575c"))); tv_left.setBackground(drawable1); tv_left.setLayoutParams(tv_params); TextView tv_right = new TextView(mContext); tv_right.setText(rightText); tv_right.setTextColor(Color.WHITE); tv_right.setClickable(true); tv_right.setPadding(dp2px(10), dp2px(2), dp2px(10), dp2px(2)); GradientDrawable drawable2 = ViewUtil.createGradientDrawableRadius(2, new float[]{0, 0, 14, 14, 14, 14, 0, 0}, colorRight); drawable2.setColor(ViewUtil.createColorStateList( colorRight, Color.parseColor("#aa"+colorRightString.substring(1)), colorRight, colorRight)); tv_right.setBackground(drawable2); tv_right.setLayoutParams(tv_params); this.addView(tv_left); this.addView(tv_right); } public int dp2px(float dp){ final float scale = getContext().getResources().getDisplayMetrics().density; return (int) (dp * scale + 0.5f); } public static int randomColor(String[] colors){ if (colors == null || colors.length <= 0){ return Color.RED; } int random = new Random().nextInt(colors.length); return Color.parseColor(colors[random]); } public static String randomColorString(String[] strings){ if (strings == null || strings.length <= 0){ return "#ff0000"; } int random = new Random().nextInt(strings.length); return strings[random]; } }