2011-06-10 54 views
0

我已经创建了一个自定义主题来定义标题栏和背景样式的大小。 这是代码:Android - 如何创建依赖于屏幕分辨率的主题?

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="customTheme" parent="android:Theme"> 
     <item name="android:windowTitleSize">53px</item> 
     <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item> 
      <item name="android:windowContentOverlay">@android:color/transparent</item> 
    </style> 
</resources> 

的问题是,我设置一个固定的大小对本标题栏,而不是使用取决于该设备是否正在使用HDPI/MDPI或LDPI图标不同的值。

这里应该做些什么?我尝试将主题和样式添加到drawable目录,但显然这是错误的。

谢谢!

回答

1

您是否考虑过百分比宽度或密度无关像素(dp)?看看Android的unit's of measurement

+0

不是一个坏主意。谢谢! – 2011-06-10 18:01:40

1

我不知道这是否会对您有所帮助,但您可以通过编程方式检测屏幕密度。我没有使用自定义标题栏,所以我不知道是否可以通过编程方式更改标题。

 DisplayMetrics metrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(metrics); 
     switch(metrics.densityDpi){ 
      case DisplayMetrics.DENSITY_LOW: 
       ** 
         break; 
      case DisplayMetrics.DENSITY_MEDIUM: 
       ** 
         break; 
      case DisplayMetrics.DENSITY_HIGH: 
       ** 
         break; 
     } 
+0

这可能是一个可能的解决方案。但Tanner正确地使用'dp'而不是'px'。 – 2011-06-10 18:02:23