package com.videogo.widget.loading; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.TypedArray; import android.util.AttributeSet; import android.util.TypedValue; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import android.widget.LinearLayout; import android.widget.TextView; import ezviz.ezopensdk.R; public class LoadingTextView extends FrameLayout { public static final int NOTEXT = -1; public static final int HORIZONTAL = 0; public static final int VERTICAL = 1; private LinearLayout mParentLayout; private LoadingView mLoadingView; private TextView mTextView; private int mTextPadding; public LoadingTextView(Context context) { this(context, null); } public LoadingTextView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public LoadingTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.LoadingTextView, defStyle, R.style.LoadingTextView); int style = a.getInt(R.styleable.LoadingTextView_textStyle, LinearLayout.VERTICAL); int gravity = a.getInt(R.styleable.LoadingTextView_gravity, Gravity.CENTER); ColorStateList textColor = a.getColorStateList(R.styleable.LoadingTextView_textColor); int textSize = a.getDimensionPixelOffset(R.styleable.LoadingTextView_textSize, 15); mTextPadding = a.getDimensionPixelOffset(R.styleable.LoadingTextView_textPadding, 0); CharSequence text = a.getText(R.styleable.LoadingTextView_android_text); a.recycle(); LayoutInflater layoutInflater = LayoutInflater.from(context); View view = layoutInflater.inflate(R.layout.loading_text_view, this, false); addView(view); mParentLayout = (LinearLayout) view; mLoadingView = (LoadingView) view.findViewById(R.id.loading_view); mTextView = (TextView) view.findViewById(R.id.loading_text); setTextStyle(style); mParentLayout.setGravity(gravity); mTextView.setTextColor(textColor); mTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize); setText(text); } public void setTextStyle(int style) { if (style == -1) { mTextView.setVisibility(View.GONE); } else { if (style != mParentLayout.getOrientation()) { mParentLayout.setOrientation(style); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) mTextView.getLayoutParams(); if (style == LinearLayout.VERTICAL) { layoutParams.leftMargin = 0; layoutParams.topMargin = mTextPadding; } else { layoutParams.leftMargin = mTextPadding; layoutParams.topMargin = 0; } } mTextView.setVisibility(View.VISIBLE); } } public void setText(CharSequence text) { mTextView.setText(text); } public void setText(int resid) { mTextView.setText(resid); } }