使用Java更改Android中的XML样式资源

时间:2014-07-16 14:52:02

标签: java android android-xml android-styles

我的UI中的大多数元素引用了字体大小,大小,颜色等的样式资源。是否可以动态更改其中一个<item>的值?我希望得到屏幕的物理尺寸并改变尺寸,以便它占据屏幕大小不同的屏幕百分比。 <item name="android:textSize">12dp</item>会转到<item name="android:textSize">15dp</item>

1 个答案:

答案 0 :(得分:0)

您的意思是要为不同的屏幕尺寸应用样式。

看看这个:http://developer.android.com/guide/practices/screens_support.html

这会对你有帮助。

编辑:经过一些研究,到目前为止我找到了一个可能的答案。

// declaring resources
int mHeight;
int mWidth;
/* I am considering a TextView, if you want,
 * you can apply it for any widget you like. */
TextView mTextView = (TextView)findViewById(R.id.your_textview_id);

/* right. now we want to get the screen dimensions. */
Display mDisplay = getWindowManager().getDefaultDisplay();
mHeight = mDisplay.getHeight();
mWidth = mDisplay.getWidth();

/* now we have the values that needed.
 * the next thing to do is mathematical operation.
 * do this as you wish. the thing I do is obtain a
 * value that the mHeight is subtracted by mWidth and divided by 2. */
float mTextSize = (float) (mHeight - mWidth) / 2;

// apply it as text size of the TextView.
mTextView.setTextSize(mTextSize);