关于android基本模板

1.style

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <!--<item name="colorPrimary">@color/colorPrimary</item>-->
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <!--<item name="colorAccent">@color/colorAccent</item>-->
</style>

<!-- app启动页:预防启动白屏 -->
<style name="style_splash" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>

<activity
        android:name="com.zliang.chunzhen.ui.Activity_Main"
        android:exported="false"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" />
        <color name="text_gray">#999999</color>//app字体灰色
        
<color name="text_hint">#999999</color>//app字体hint
<color name="text_black">#333333</color>//app字体黑色
<color name="common_gray">#F4F4F4</color>//app背景通用灰色
<color name="common_line_color">#E0E0E0</color>//app细线颜色
public class FragmentTabAdapter {
private List<Fragment> fragmentList; // 一个tab页面对应一个Fragment
private FragmentManager fragmentManager; // Fragment所属的Activity
private int fragmentContentId; // Activity中所要被替换的区域的id
private int currentTab=-1; // 当前Tab页面索引
《1》
public FragmentTabAdapter(FragmentManager fragmentManager, List<Fragment> fragmentList, int fragmentContentId, int index) {
    this.fragmentManager = fragmentManager;
    this.fragmentList = fragmentList;
    this.fragmentContentId = fragmentContentId;

    // 默认显示首页
    setIndexSelected(index);
}

private void hideFragment(){
    FragmentTransaction ft = fragmentManager.beginTransaction();
    for (int i = 0; i <fragmentList.size() ; i++) {
        if (fragmentList.get(i).isAdded()){
            ft.hide(fragmentList.get(i));
        }
    }
    ft.commit();
}

public void setIndexSelected(int index) {

    if (currentTab == index) {
        return;
    }

    //隐藏所有
    hideFragment();

    //显示
    FragmentTransaction ft = fragmentManager.beginTransaction();
    if (fragmentList.get(index).isAdded()){
        ft.show(fragmentList.get(index));
    }else {
        ft.add(fragmentContentId, fragmentList.get(index));
    }
    ft.commit();

    //再次赋值
    currentTab = index;
}

public Fragment getCurrentFragment() {
    return fragmentList.get(currentTab);
}

}
2.
public class FragmentVpAdapter extends FragmentStatePagerAdapter {

List<Fragment> list;

public FragmentVpAdapter(FragmentManager fm, List<Fragment> list) {
	super(fm);
	this.list = list;
}

@Override
public int getCount() {
	return list.size();
}

@Override
public Fragment getItem(int position) {
	return list.get(position);
}

@Override
public int getItemPosition(@NonNull @NotNull Object object) {
	return POSITION_NONE;
}

}

public class ActivityManager {
private static ActivityManager sActivityManager;
private List mActivities = new ArrayList<>();

private ActivityManager() {
}
public static ActivityManager getInstance() {
    if (sActivityManager == null) {
        synchronized (ActivityManager.class) {
            if (sActivityManager == null) {
                sActivityManager = new ActivityManager();
            }
        }
    }
    return sActivityManager;
}

public List<Activity> getActivities() {
    return mActivities;
}

public void addActivity(Activity activity) {
    mActivities.add(activity);
}

public void finish(Activity activity) {
    mActivities.remove(activity);
}

public void finishAll() {
    for (int i = 0; i < mActivities.size(); i++) {
        Activity activity = mActivities.get(i);
        if (!activity.isFinishing()) {
            activity.finish();
        }
        mActivities.remove(activity);
        i--;
    }
}

}

public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener {
public LayoutInflater inflater;
public View view;
public TextView titleName, textTitleRight;
public ImageView imgBack, imgTitleRight;
public Context mContext = this;

@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //沉浸式状态栏
    StatusBarUtil.setStatusBarFullTransparent(this);

    ActivityManager.getInstance().addActivity(this);
    this.inflater = getLayoutInflater();// 调用Activity的getLayoutInflater()

    setConvertView(savedInstanceState);
    setContentView(view);
    init();
}

private void init() {
    findViewById();
    setListener();
    initData();
}

protected abstract void setConvertView(Bundle savedInstanceState);

protected abstract void findViewById();

protected abstract void setListener();

protected abstract void initData();

}

public abstract class BaseFragment extends Fragment implements View.OnClickListener {

public View mRootView;
public boolean isFirstLoad = true;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    if (mRootView == null) {
        mRootView = initView();
    }

    if (isFirstLoad) {
        isFirstLoad = false;
        findViewById();
        setListener();
        initData();
    }

    return mRootView;
}

public abstract View initView();

protected abstract void findViewById();

protected abstract void setListener();

protected abstract void initData();

}

public class CommonAppContext extends MultiDexApplication {

public static CommonAppContext sInstance;

@Override
public void onCreate() {
    super.onCreate();
    sInstance = this;

    LogUtils.syncIsDebug(this);

// //初始化Http
HttpClient.getInstance().init();

    //极光推送

// JPushInterface.setDebugMode(false); // 设置开启日志,发布时请关闭日志
// JPushInterface.init(this);
//
// //友盟分享
// UmengInit.init(getApplicationContext());

}

//全局设置刷新样式,static 代码段可以防止内存泄露
static {
    //设置全局的Header构建器
    SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
        @Override
        public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
            layout.setPrimaryColorsId(R.color.transparence, R.color.text_gray);//全局设置主题颜色(背景色,文字颜色)
            layout.setHeaderHeight(60);
            return new ClassicsHeader(context).setFinishDuration(0).setDrawableSize(15).setTextSizeTitle(13).setTextSizeTime(10);//.setTimeFormat(new DynamicTimeFormat("更新于 %s"));//指定为经典Header,默认是 贝塞尔雷达Header
        }
    });

    //设置全局的Footer构建器
    SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
        @Override
        public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
            layout.setPrimaryColorsId(R.color.transparence, R.color.text_gray);//全局设置主题颜色(背景色,文字颜色)
            layout.setFooterHeight(50);
            //指定为经典Footer,默认是 BallPulseFooter
            return new ClassicsFooter(context).setFinishDuration(0).setDrawableSize(15).setTextSizeTitle(13);
        }
    });
}

}

public class Constants {

//APP唯一名称标志
public static final String APP_TAG = "ChunZhen";

//APP文件路径
public static final String PATH_ROOT = Environment.getExternalStorageDirectory() + "/" + APP_TAG + "/";
public static final String PATH_CACHE = Environment.getExternalStorageDirectory() + "/" + APP_TAG + "/Cache/";
public static final String PATH_PHOTO = Environment.getExternalStorageDirectory() + "/" + APP_TAG + "/Image/";
public static final String PATH_APP_NATIVE = PATH_CACHE + APP_TAG + ".apk";
//刷新框架相关
public static final int AUTO_REFRESH_DELAY = 0;
public static final int AUTO_REFRESH_DURATION = 200;
public static final int AUTO_REFRESH_DRAGRATE = 1;

//分页加载最大个数
public static final int LIMIT_LIST_COUNT = 20;

//图片圆角度
public static final int IMG_ROUND_RADIUS = 25;
public static final int IMG_PREVIEW_SIZE = 400;

//短信验证码倒计时
public static final int SMS_CODE_TIME = 90 * 1000;

//轮播图倒计时
public static final int BANNER_TIME = 4 * 1000;

//登录类型
public static final int LOGIN_PWD = 0;
public static final int LOGIN_CODE = 1;

//支付汇总 1微信 2支付宝 3其他
public static final String PAY_BY_WX = "1";
public static final String PAY_BY_ZFB = "2";
public static final String PAY_BY_CARD = "3";

//APP升级的一些标识
public static final String APP_UPDATE_TAG = ".base.Service_Update_Apk";

//微信APPid

// public static final String WX_APP_ID = “wx00810f1f990ae3de”;
// public static final String WX_MiniProgram_ID = “gh_e1e15b136b7c”;
public static final String WX_MiniProgram_PATH = “pages/Pay/Pay?PayTempID=”;

public static void set_WX_APP_ID(Context context, String token) {
    Utils.setDataToShare(context, APP_TAG, "WX_APP_ID", token);
}

public static String get_WX_APP_ID(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "WX_APP_ID");
}

//用户token
public static void set_WX_MiniProgram_ID(Context context, String token) {
    Utils.setDataToShare(context, APP_TAG, "WX_MiniProgram_ID", token);
}

public static String get_WX_MiniProgram_ID(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "WX_MiniProgram_ID");
}

//用户token
public static void setUserToken(Context context, String token) {
    Utils.setDataToShare(context, APP_TAG, "token", token);
}

public static String getUserToken(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "token");
}

//用户token
public static void setUserTokenShangJia(Context context, String token) {
    Utils.setDataToShare(context, APP_TAG, "token_shangjia", token);
}

public static String getUserTokenShangJia(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "token_shangjia");
}

//用户id
public static void setUserId(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "id", id);
}

public static String getUserId(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "id");
}

//用户id
public static void setUserIdShangJia(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "id_shangjia", id);
}

public static String getUserIdShangJia(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "id_shangjia");
}

public static void setUserMobile(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "mobile", id);
}

public static String getUserMobile(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "mobile");
}

public static void setUserMobileShangJia(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "mobile_shangjia", id);
}

public static String getUserMobileShangJia(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "mobile_shangjia");
}

public static void setUserPwdShangJia(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "pwd_shangjia", id);
}

public static String getUserPwdShangJia(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "pwd_shangjia");
}

public static void setUserRole(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "role", id);
}

public static String getUserRole(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "role");
}

//
public static void setAppUpdateState(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "app_update", id);
}

public static String getAppUpdateState(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "app_update");
}


public static void setLat(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "lat", id);
}

public static String getLat(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "lat");
}

//
public static void setLng(Context context, String id) {
    Utils.setDataToShare(context, APP_TAG, "lng", id);
}

public static String getLng(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "lng");
}

public static void setIsPush(Context context, String token) {
    Utils.setDataToShare(context, APP_TAG, "is_push", token);
}

public static String getIsPush(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "is_push");
}

//是否同意协议
public static boolean isAgreeXieYi(Context context) {

    if ("1".equals(getXieYiState(context))) {
        return true;
    }

    return false;
}

//是否登陆过
public static boolean isLogin(Context context) {

    if (!StringUtil.isEmpty(getUserId(context))) {
        return true;
    }

    return false;
}

//用户协议
public static void setXieYiState(Context context, String token) {
    Utils.setDataToShare(context, APP_TAG, "xieyi_state", token);
}

public static String getXieYiState(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "xieyi_state");
}

//用户协议
public static void setUserIsJoinChat(Context context, String token) {
    Utils.setDataToShare(context, APP_TAG, "chat_state", token);
}

public static String getUserIsJoinChat(Context context) {
    return Utils.getDataFromShare(context, APP_TAG, "chat_state");
}


//清空本地用户数据
public static void resetUserData(Context context) {
    setUserId(context, "");
    setUserToken(context, "");

// setUserMobile(context, “”);
}

//清空本地用户数据
public static void resetUserDataShangJia(Context context) {
    setUserIdShangJia(context, "");
    setUserTokenShangJia(context, "");

// setUserMobile(context, “”);
}

}

public class StatusBarUtil {

//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//去了状态栏
// }

//6.0以下状态栏不好适配,直接默认全是黑色,6.0以上可以适配

// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
// getWindow().setStatusBarColor(ContextCompat.getColor(this, R.color.common_primary)); //这里动态修改状态栏颜色
// getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);//针对浅色状态栏,文字自动变为深色字体
// }

/**
 * 全透状态栏
 */
public static void setStatusBarFullTransparent(Activity context) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        //5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色
        Window window = context.getWindow();
        View decorView = window.getDecorView();
        //两个 flag 要结合使用,表示让应用的主体内容占用系统状态栏的空间
        int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_LAYOUT_STABLE|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
        decorView.setSystemUiVisibility(option);
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
        window.setStatusBarColor(Color.TRANSPARENT);
        //导航栏颜色也可以正常设置

// window.setNavigationBarColor(Color.TRANSPARENT);
} else {
Window window = context.getWindow();
WindowManager.LayoutParams attributes = window.getAttributes();
int flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
int flagTranslucentNavigation = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
attributes.flags |= flagTranslucentStatus;
// attributes.flags |= flagTranslucentNavigation;
window.setAttributes(attributes);
}
}

// /**
// * 全透状态栏
// */
// @RequiresApi(api = Build.VERSION_CODES.M)
// public static void setStatusBarFullTransparent(Activity context) {
// if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
// Window window = context.getWindow();
// window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// | View.SYSTEM_UI_FLAG_LAYOUT_STABLE| View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// window.setStatusBarColor(Color.TRANSPARENT);
// } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
// context.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// //虚拟键盘也透明
// //getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
// }
// }

// /**
// * 半透明状态栏
// */
// protected void setHalfTransparent() {
//
// if (Build.VERSION.SDK_INT >= 21) {//21表示5.0
// View decorView = getWindow().getDecorView();
// int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
// decorView.setSystemUiVisibility(option);
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//
// } else if (Build.VERSION.SDK_INT >= 19) {//19表示4.4
// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// //虚拟键盘也透明
// // getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
// }
// }
//

//
// /**
// * 为了兼容4.4的抽屉布局->透明状态栏
// */
// protected void setDrawerLayoutFitSystemWindow() {
// if (Build.VERSION.SDK_INT == 19) {//19表示4.4
// int statusBarHeight = getStatusHeight(this);
// if (contentViewGroup == null) {
// contentViewGroup = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0);
// }
// if (contentViewGroup instanceof DrawerLayout) {
// DrawerLayout drawerLayout = (DrawerLayout) contentViewGroup;
// drawerLayout.setClipToPadding(true);
// drawerLayout.setFitsSystemWindows(false);
// for (int i = 0; i < drawerLayout.getChildCount(); i++) {
// View child = drawerLayout.getChildAt(i);
// child.setFitsSystemWindows(false);
// child.setPadding(0,statusBarHeight, 0, 0);
// }
//
// }
// }
// }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值