package com.mylhyl.circledialog.view;
|
|
import android.content.Context;
|
import android.text.method.ScrollingMovementMethod;
|
import android.view.ViewGroup;
|
import android.widget.LinearLayout;
|
|
import androidx.appcompat.widget.AppCompatTextView;
|
|
import com.mylhyl.circledialog.internal.BackgroundHelper;
|
import com.mylhyl.circledialog.internal.CircleParams;
|
import com.mylhyl.circledialog.internal.Controller;
|
import com.mylhyl.circledialog.params.DialogParams;
|
import com.mylhyl.circledialog.params.TextParams;
|
import com.mylhyl.circledialog.view.listener.OnCreateTextListener;
|
|
/**
|
* 对话框纯文本视图
|
* Created by hupei on 2017/3/30.
|
*/
|
final class BodyTextView extends AppCompatTextView {
|
private DialogParams mDialogParams;
|
private TextParams mTextParams;
|
private OnCreateTextListener mOnCreateTextListener;
|
|
public BodyTextView(Context context, CircleParams circleParams) {
|
super(context);
|
init(circleParams);
|
}
|
|
private void init(CircleParams circleParams) {
|
|
mDialogParams = circleParams.dialogParams;
|
mTextParams = circleParams.textParams;
|
mOnCreateTextListener = circleParams.circleListeners.createTextListener;
|
|
if (mTextParams == null) {
|
mTextParams = new TextParams();
|
mTextParams.height = 0;
|
mTextParams.padding = null;
|
}
|
setId(android.R.id.text1);
|
setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
ViewGroup.LayoutParams.WRAP_CONTENT, 1));
|
|
if (mDialogParams.typeface != null) {
|
setTypeface(mDialogParams.typeface);
|
}
|
setGravity(mTextParams.gravity);
|
|
// 如果标题没有背景色,则使用默认色
|
int backgroundColor = mTextParams.backgroundColor != 0 ? mTextParams.backgroundColor :
|
mDialogParams.backgroundColor;
|
BackgroundHelper.handleBodyBackground(this, backgroundColor, circleParams);
|
|
setMovementMethod(ScrollingMovementMethod.getInstance());
|
|
setMinHeight(mTextParams.height);
|
setTextColor(mTextParams.textColor);
|
setTextSize(mTextParams.textSize);
|
setText(mTextParams.text);
|
setTypeface(getTypeface(), mTextParams.styleText);
|
|
int[] padding = mTextParams.padding;
|
if (padding != null) {
|
setPadding(Controller.dp2px(getContext(), padding[0]),
|
Controller.dp2px(getContext(), padding[1]),
|
Controller.dp2px(getContext(), padding[2]),
|
Controller.dp2px(getContext(), padding[3]));
|
}
|
|
if (mOnCreateTextListener != null) {
|
mOnCreateTextListener.onCreateText(this);
|
}
|
}
|
|
public void refreshText() {
|
if (mTextParams != null) {
|
setText(mTextParams.text);
|
}
|
}
|
|
}
|