2013-07-21 198 views
0

我在屏幕上顯示一些TexViews。它們包含文本以及可繪製的圖像。我的問題是我怎麼能根據屏幕分辨率低於 規模的繪製是我的代碼正在運行:根據屏幕大小調整可繪製大小

Drawable dr = getResources().getDrawable(R.drawable.image); 
     Bitmap bitmap = ((BitmapDrawable) dr).getBitmap(); 
     Drawable d = new BitmapDrawable(this.getResources(),Bitmap.createScaledBitmap(bitmap, 35, 35, true)); 
     textView.setCompoundDrawablesWithIntrinsicBounds(d, null,null,null); 

在這裏,我用比35,但是當我們更大的屏幕上運行應用程序的圖像顯示爲小。

任何建議縮放圖像的不同屏幕尺寸?

回答

0

首先,獲得密度規模:

DisplayMetrics dm = new DisplayMetrics(); 
mainContext.getWindowManager().getDefaultDisplay().getMetrics(dm); 
float densityScale = dm.density; 

使用前,然後按比例由densityScale值所需的大小:

float scaledWidth = 35 * densityScale; 
float scaledHeight = 35 * densityScale; 

Drawable dr = getResources().getDrawable(R.drawable.image); 
Bitmap bitmap = ((BitmapDrawable) dr).getBitmap(); 
Drawable d = new BitmapDrawable(this.getResources(),Bitmap.createScaledBitmap(bitmap, scaledWidth, scaledHeight, true)); 
textView.setCompoundDrawablesWithIntrinsicBounds(d, null,null,null); 

這假定35是160dpi正確的尺寸。如果不是,您需要將35更改爲適合160dpi的值。

有關支持多種分辨率/密度的更多信息,請參閱here

相關問題