kiduo0 2014-01-16
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); } }