2014.01.16(2) ——— android 关于适配的工具类

2014.01.16 ——— android 关于适配的工具类


import android.content.Context;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.widget.TextView;

/**
* 主要用于适配
* 最好都用px,这样计算的精确
*/
public class UtilFit {

//ui设计的时候 基于的屏幕的宽和高
private int mBaseWidth;
private int mBaseHeight;
//当前手机的宽和高
private int mCurrentWidth;
private int mCurrentHeight;

private float mScaleWidth;
private float mScaleHeight;

//默认 720 * 1280
public UtilFit(Context pContext){
this(pContext, 720, 1280);
}

public UtilFit(Context pContext, int pBaseWidth, int pBaseHeight){
this.mBaseHeight = pBaseHeight;
this.mBaseWidth = pBaseWidth;
DisplayMetrics mDis = pContext.getResources().getDisplayMetrics();
this.mCurrentHeight = mDis.heightPixels;
this.mCurrentWidth = mDis.widthPixels;

this.mScaleHeight = 1.0f * mCurrentHeight / mBaseHeight;
this.mScaleWidth = 1.0f * mCurrentWidth / mBaseWidth;
}

/**
* 适配字体
* 最好textview里面的字体用px,也就是ui给的标注里面的值
* 这样计算的更准确
* @Title: setTextSize
* @param pTxt
* @return void
* @date 2014-1-16 上午11:14:06
*/
public void setTextSize(TextView pTxt){
pTxt.setTextSize(TypedValue.COMPLEX_UNIT_PX, pTxt.getTextSize() * mScaleWidth);
}

/**
*
* 根据原来image的宽高比来计算image的高度
* 一般用在gridview里面的图片适配
* @Title: getImageHeight
* @param pSrcHeight
* @param pSrcWidth
* @param pDstWidth
* @return
* @return int
* @date 2014-1-16 上午11:11:39
*/
public int getImageHeight(float pSrcHeight, float pSrcWidth, int pDstWidth){
float tScale = 1.0f * pSrcHeight / pSrcWidth;
return Math.round(tScale * pDstWidth);
}

/**
*用来计算填充屏幕宽度的image的高度
* @Title: getImageHeight
* @param pSrcHeight
* @return
* @return int
* @date 2014-1-16 上午11:17:15
*/
public int getImageHeight(float pSrcHeight){
return Math.round(mScaleWidth * pSrcHeight);
}
/**
* 这个可以用来得到目标view在本手机上应该显示的高
*
* 例如 一个ViewPager在base也就是720*1280,上面高度为100 这个是ui给的标注
* 然后 我的手机是480*800的 这个时候 就可以 用这个来得到应该在我的手机上显示的高度
* 800/1280 * 100 = 62.5
*
*/
public int getViewHeight(float pSrcHeight){
return Math.round(mScaleWidth * pSrcHeight);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值