Density

package com.k1.frame.utils;

import android.content.Context;
import android.util.DisplayMetrics;

public class Density {

    public static final float DEFAULT_SCALE = 2;

    private static float scale = 1.0f;
    private static float fontScale = 1.0f;
    private static int statusBarHeight = 40;
    private static int screenWidth = 720;
    private static int screenHeight = 1280;

    public static void init (Context context) {
        DisplayMetrics dm = context.getResources().getDisplayMetrics();
        scale = dm.density;
        fontScale = dm.scaledDensity;
        screenWidth = dm.widthPixels;
        screenHeight = dm.heightPixels;
        statusBarHeight = getStatusBarHeight(context);
    }

    private static int getStatusBarHeight(Context context) {
        int result = 0;
        int resourceId = context.getResources().getIdentifier(
                "status_bar_height", "dimen", "android");
        if (resourceId > 0) {
            result = context.getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }

    public static int statusBarHeight() {
        return statusBarHeight;
    }

    public static int screenWidth() {
        return screenWidth;
    }

    public static int screenHeight() {
        return screenHeight;
    }

    public static int dip2px(float dpValue) {
        return (int) (dpValue * scale + 0.5f);
    }

    public static int px2dip(float pxValue) {
        return (int) (pxValue / scale + 0.5f);
    }

    public static int px2sp(float pxValue) {
        return (int) (pxValue / fontScale + 0.5f);
    }

    public static int sp2px(float spValue) {
        return (int) (spValue * fontScale + 0.5f);
    }
}
时间: 2024-12-20 12:07:24

Density的相关文章

Sdut2411 Pixel density 山东省第三届ACM省赛(输入输出字符串处理)

本文出处:http://blog.csdn.net/svitter 原题:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2411 题意:给你一个串,让你依据那个串来输出ppi.坑特别多.ppi的计算方法是dp / inches; dp = sqrt(wp*wp + hp * hp); 现在我来说说这个题目有多坑: 给你的串的格式是这样: name + inches+ "inches"

Science14年的聚类论文——Clustering by fast search and find of density peaks

这是一个比较新的聚类方法(文章中没看见作者对其取名,在这里我姑且称该方法为local density clustering,LDC),在聚类这个古老的主题上似乎最近一些年的突破不大,这篇文章算是很好的了,方法让人很有启发(醍醐灌顶),并且是发表在Science上,受到的关注自然非常大. 本文的核心亮点:1是用比较新颖的方法来确定聚类中心,2是采用距离的local density来进行聚类的划分.在这两点中,常见的Kmeans算法采用的方法是:用每一类的均值作为中点,用距离的最近的点来确定聚类划分

dpi 、 dip 、分辨率、屏幕尺寸、px、density 关系以及换算

一.基本概念 dip        : Density independent pixels ,设备无关像素. dp        :就是dip px        : 像素 dpi       :dots per inch , 直接来说就是一英寸多少个像素点.常见取值 120,160,240.我一般称作像素密度,简称密度 density : 直接翻译的话貌似叫 密度.常见取值 1.5 , 1.0 .和标准dpi的比例(160px/inc) 分辨率   : 横纵2个方向的像素点的数量,常见取值

sdut 2411:Pixel density(第三届山东省省赛原题,字符串处理)

Pixel density Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 Pixels per inch (PPI) or pixel density is a measurement of the resolution of devices in various contexts; typically computer displays, image scanners, and digital camera image s

一种新型聚类算法(Clustering by fast search and find of density peaksd)

最近在学习论文的时候发现了在science上发表的关于新型的基于密度的聚类算法 Kmean算法有很多不足的地方,比如k值的确定,初始结点选择,而且还不能检测费球面类别的数据分布,对于第二个问题,提出了Kmean++,而其他不足还没有解决,dbscan虽然可以对任意形状分布的进行聚类,但是必须指定一个密度阈值,从而去除低于此密度阈值的噪音点,这篇文章解决了这些不足. 本文提出的聚类算法的核心思想在于,对聚类中心的刻画上,而且认为聚类中心同时具有以下两种特点: 本身的密度大,即它被密度均不超过它的邻

Science论文"Clustering by fast search and find of density peaks"学习笔记

"Clustering by fast search and find of density peaks"是今年6月份在<Science>期刊上发表的的一篇论文,论文中提出了一种非常巧妙的聚类算法.经过几天的努力,终于用python实现了文中的算法,下面与大家分享一下自己对算法的理解及实现过程中遇到的问题和解决办法. 首先,该算法是基于这样的假设:类簇中心被具有较低局部密度的邻居点包围,且与具有更高密度的任何点有相对较大的距离.对于每一个数据点,要计算两个量:点的局部密度和

Android dpi、dip、px、分辨率、屏幕尺寸、density 关系以及换算

一.介绍 dip:设备独立像素(Device independent pixel),一个基于density的抽象单位: dp:在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp这个名字: px:像素(Pixel),1px代表屏幕上一个物理的像素点,px单位不被建议使用,因为同样1px,在不同手机上显示的实际大小可能不同,偶尔用到px的情况是需要画1像素表格线或画一条细的分隔线的时候,用其他单位如dp会显得模糊: sp:与缩放无关的抽象像素(Scale-independen

PIC2, Kernel Density Estimates

核函数估计 Demo I import sys,re,os import numpy as np from scipy import stats import matplotlib.pylab as plt if __name__ == '__main__': # random data grade = [np.random.rand(100) * 100] fig = plt.figure() # KDE ax1 = fig.add_subplot(211) ind = np.arange(0

Clustering by density peaks and distance

这次介绍的是Alex和Alessandro于2014年发表在的Science上的一篇关于聚类的文章[13],该文章的基本思想很简单,但是其聚类效果却兼具了谱聚类(Spectral Clustering)[11,14,15]和K-Means的特点,着实激起了我的极大的兴趣,该聚类算法主要是基于两个基本点: 聚类中心的密度高于其临近的样本点的密度 聚类中心与比其密度还高的聚类中心的距离相对较大 基于这个思想,聚类过程中的聚类中心数目可以很直观的选取,离群点也能被自动检测出来并排除在聚类分析外.无论每

Android屏幕density, dip等相关概念总结

下面是<memcached全面剖析>的第二部分. 发表日:2008/7/9 作者:前坂徹(Toru Maesaka) 原文链接:http://gihyo.jp/dev/feature/01/memcached/0002 我是mixi株式会社研究开发组的前坂徹. 上次的文章介绍了memcached是分布式的高速缓存服务器. 本次将介绍memcached的内部构造的实现方式,以及内存的管理方式. 另外,memcached的内部构造导致的弱点也将加以说明. Slab Allocation机制:整理内