安卓開發技巧四:手機解析度處理工具類,安卓開發技巧

來源:互聯網
上載者:User

安卓開發技巧四:手機解析度處理工具類,安卓開發技巧

/** *  * @Description:手機解析度處理工具類 * @author: * @see: * @since: * @copyright ©  * @Date:2014年8月13日 */public class DensityUtil {      /**      * 根據手機的解析度從 dp 的單位 轉成為 px(像素)      */      public static int dip2px(Context context, float dpValue) {          final float scale = context.getResources().getDisplayMetrics().density;          return (int) (dpValue * scale + 0.5f);      }      /**      * 根據手機的解析度從 px(像素) 的單位 轉成為 dp      */      public static int px2dip(Context context, float pxValue) {          final float scale = context.getResources().getDisplayMetrics().density;          return (int) (pxValue / scale + 0.5f);      }      /**     * 將px值轉換為sp值,保證文字大小不變     *      * @param pxValue     * @param fontScale(DisplayMetrics類中屬性scaledDensity)     * @return     */    public static int px2sp(float pxValue, float fontScale) {     return (int) (pxValue / fontScale + 0.5f);    }    /**     * 將sp值轉換為px值,保證文字大小不變     *      * @param spValue     * @param fontScale(DisplayMetrics類中屬性scaledDensity)     * @return     */    public static int sp2px(float spValue, float fontScale) {     return (int) (spValue * fontScale + 0.5f);    }           /**     * 獲得螢幕密度     * @param context     * @return     */    public static int getScreenDensityDpi(Activity context) {    DisplayMetrics metric = new DisplayMetrics();    context.getWindowManager().getDefaultDisplay().getMetrics(metric);    int density = metric.densityDpi;     CLog.d("DensityUtil density=", density+"");    return density;    }        /**     * 獲得螢幕高度     * @param context     * @return     */    public static int getScreenHeight(Activity context) {    DisplayMetrics metric = new DisplayMetrics();    context.getWindowManager().getDefaultDisplay().getMetrics(metric);    int screenHeight = metric.heightPixels;     CLog.d("DensityUtil screenHight=", screenHeight+"");    return screenHeight;    }        /**     * 獲得螢幕寬度     * @param context     * @return     */    public static int getScreenWidth(Activity context) {    DisplayMetrics metric = new DisplayMetrics();    context.getWindowManager().getDefaultDisplay().getMetrics(metric);    int screenWidth = metric.widthPixels;     CLog.d("DensityUtil screenWidth=",screenWidth+"");    return screenWidth;    }            /*** 返回狀態列/通知欄的高度* * @param activity* @return*/public static int getStatusHeight(Activity activity) {Rect frame = new Rect();activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;return statusBarHeight;}       }  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.