package me.weyye.hipermission; import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; import android.widget.GridView; import android.widget.LinearLayout; import android.widget.ListAdapter; import android.widget.TextView; /** * Created by Administrator on 2017/5/11 0011. */ public class PermissionView extends FrameLayout { private TextView mTvTitle; private TextView mTvDesc; private Button mBtnNext; private GridView mGvPermission; private LinearLayout mLlRoot; public PermissionView(Context context) { this(context, null); } public PermissionView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public PermissionView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); initView(); } private void initView() { View permissionView = View.inflate(getContext(), R.layout.dialog_request_permission, this); mTvTitle = (TextView) permissionView.findViewById(R.id.tvTitle); mLlRoot = (LinearLayout) permissionView.findViewById(R.id.llRoot); mTvDesc = (TextView) permissionView.findViewById(R.id.tvDesc); mBtnNext = (Button) permissionView.findViewById(R.id.goto_settings); mGvPermission = (GridView) permissionView.findViewById(R.id.gvPermission); } public void setGridViewColum(int colum) { mGvPermission.setNumColumns(colum); } public void setGridViewAdapter(ListAdapter adapter) { mGvPermission.setAdapter(adapter); } public void setTitle(String title) { mTvTitle.setText(title); } public void setMsg(String msg) { mTvDesc.setText(msg); } public void setBtnOnClickListener(OnClickListener listener) { mBtnNext.setOnClickListener(listener); } @SuppressWarnings("ResourceType") public void setStyleId(int styleId) { if (styleId <= 0) return; int[] ints = { R.attr.PermissionMsgColor, R.attr.PermissionTitleColor, R.attr.PermissionItemTextColor, R.attr.PermissionButtonTextColor, R.attr.PermissionBackround, R.attr.PermissionButtonBackground }; Resources.Theme theme = getResources().newTheme(); theme.applyStyle(styleId, true); TypedArray typedArray = theme.obtainStyledAttributes(ints); int msgColor = typedArray.getColor(0, -1); int titleColor = typedArray.getColor(1, -1); int itemTextColor = typedArray.getColor(2, -1); int btnTextColor = typedArray.getColor(3, -1); Drawable background = typedArray.getDrawable(4); Drawable Btnbackground = typedArray.getDrawable(5); if (titleColor != -1) mTvTitle.setTextColor(titleColor); if (background != null) mLlRoot.setBackground(background); if (msgColor != -1) mTvDesc.setTextColor(msgColor); if (itemTextColor != -1) ((PermissionAdapter) mGvPermission.getAdapter()).setTextColor(itemTextColor); if (Btnbackground != null) mBtnNext.setBackground(Btnbackground); if (btnTextColor != -1) mBtnNext.setTextColor(btnTextColor); typedArray.recycle(); } public void setFilterColor(int color) { if (color == -1) return; ((PermissionAdapter) mGvPermission.getAdapter()).setFilterColor(color); } }