BaseActivity 打开新的activity 新的activityForResult dip、px互换 toast打印 sp为字体大小单位时设置字体不随系统变化而变化封装类

BaseActivity

  • 我们在activity中经常打开新的activity(openActivity)
  • 我们打开新的activityForResult(openActivityForResult)
  • 我们需要的dip、px互换(dip2px、px2dip)
  • 我们需要toast打印(showToastSafe)
  • 部分需要,在使用sp为字体大小单位时设置字体不随系统变化而变化(重写getResources方法)


public class BaseActivity extends InitActivity {

/** UI 线程ID */
private long mUIThreadId;
protected LoveApplication app;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
app = (LoveApplication) getApplication();
}

@Override
protected void onDestroy() {
super.onDestroy();
}


/**
* 通过类名启动Activity
*
* @param pClass
*/
protected void openActivity(Class<?> pClass) {
openActivity(pClass, null);
}

protected void openActivity(Class<?> pClass, String key, String value) {
Intent intent = new Intent(this, pClass);
intent.putExtra(key, value);
startActivity(intent);
}

/**
* 通过类名启动Activity,并且含有Bundle数据
*
* @param pClass
* @param pBundle
*/
protected void openActivity(Class<?> pClass, Bundle pBundle) {
Intent intent = new Intent(this, pClass);
if (pBundle != null) {
intent.putExtras(pBundle);
}
startActivity(intent);
}

public void openActivityForResult(Class<?> pClass, String key, String value, int requestCode) {
Intent intent = new Intent(this, pClass);
intent.putExtra(key, value);
openActivityForResult(pClass, null, requestCode);
}

public void openActivityForResult(Class<?> pClass, int requestCode) {
openActivityForResult(pClass, null, requestCode);
}

protected void openActivityForResult(Class<?> pClass, Bundle pBundle, int pRrequestCode) {
Intent intent = new Intent(this, pClass);
if (pBundle != null) {
intent.putExtras(pBundle);
}
startActivityForResult(intent, pRrequestCode);
}


/** dip转换px */
public int dip2px(int dip) {
final float scale = getResources().getDisplayMetrics().density;
return (int) (dip * scale + 0.5f);
}

/** pxz转换dip */
public int px2dip(int px) {
final float scale = getResources().getDisplayMetrics().density;
return (int) (px / scale + 0.5f);
}

/** 对toast的简易封装。线程安全,可以在非UI线程调用。 */
public void showToastSafe(final int resId, final int duration) {
if (Process.myTid() == mUIThreadId) {
// 调用在UI线程
Toast.makeText(getBaseContext(), resId, duration).show();
} else {
// 调用在非UI线程
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getBaseContext(), resId, duration).show();
}
});
}
}

/** 对toast的简易封装。线程安全,可以在非UI线程调用。 */
public void showToastSafe(final CharSequence text, final int duration) {
if (Process.myTid() == mUIThreadId) {
// 调用在UI线程
Toast.makeText(getBaseContext(), text, duration).show();
} else {
// 调用在非UI线程
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getBaseContext(), text, duration).show();
}
});
}
}


/*
* 设置字体不随系统变化而变化
*/
@Override
public Resources getResources() {
Resources res = super.getResources();
Configuration config=new Configuration();
config.setToDefaults();
if(res != null){
res.updateConfiguration(config,res.getDisplayMetrics() );
}
return res;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值