簡體   English   中英

Android - dimens.xml文件的別名?

[英]Android - Alias for dimens.xml file?

我正在嘗試讓我的Android應用程序支持多種屏幕尺寸。 我正在嘗試通過使用不同的dimens.xml文件更改布局的dp值來將我的替代布局保持在最低限度。

蹩腳的部分是我有9個不同的文件夾,包含尺寸文件(值,值-sw320dp,值-sw480dp,值-sw600dp,值-sw720dp用於更高的api,值 - 小,值 - 正常,值 - 大,值-xlarge for old apis)我討厭將我的sw值文件夾中的粘貼復制到舊的值文件夾中。

我知道如何創建layout.xml文件別名, 如下所示 ,但是有人知道你是否可以為尺寸文件做到這一點? 我嘗試在我的values.xml中創建多個文件,但當然它不起作用,因為我的兩個文件具有相同名稱的屬性,這會導致沖突。

我可以在values-sw600dp dimens-large.xml命名我的dimension文件,並在values-large文件夾中引用它嗎?

您可以動態更改布局組件的大小。 在這里,我根據480 * 854大小的屏幕創建第一個xml布局。 下面的代碼根據屏幕大小自動調整UI。

int width = 0;
int height = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);

    getTheDisplay();
    getUiComponents();
    adjustUIComponents();

}private void getTheDisplay() {

    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    width = dm.widthPixels;
    height = dm.heightPixels;

}private void adjustUIComponents() {
    // myButton is button from layout xml file
    adjustUI(myButton);

}private void adjustUI(View v) {
    //myButton is in LinearLayout
       LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams)v.getLayoutParams();
    lp.width = calculateWidth(211);//211 is width of button in px given in xml
    lp.height = calculateHeight(80);//80 is height of button in px given in xml

    v.setLayoutParams(lp);
}private int calculateWidth(int w) {
    int wi = (w * width) / 480;
    return wi;
}

private int calculateHeight(int h) {
    int hi = (h * height) / 854;
return hi;
}

我最終使用了Merlevede的建議,並在eclipse的構建路徑中添加了一個腳本。

具體來說,選擇android項目,轉到Project - > Properties - > Builders - > New

創建“程序”構建器,然后選擇在文件系統上本機可執行的文件。 就個人而言,我寫了一個3行java應用程序,震驚了,然后編寫了一個只調用java jar的批處理文件。 批處理文件是我指定的構建器的可執行文件。

然后我將該構建器放在構建列表的頂部,瞧,我的文件正在被自動復制!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM