是否可以自动生成比例尺?

时间:2015-04-23 17:26:25

标签: android xml android-gradle

我有一个申请。我放入所有尺寸的值-sw330dp / dimens.xml。我也有值-sw266dp / dimens.xml,我把相同的项目,但比率为0.8。它对我有用,这里没有问题。

是否可以自动完成这项工作?我想仅在值-sw330dp / dimens.xml中填充值,当我构建项目时,Gradle将生成具有指定比率的值-sw266dp / dimens.xml。

2 个答案:

答案 0 :(得分:2)

您可以使用名为dimenify的奇妙工具自动为mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi生成维度值,您只需输入任何值并使用right-click - > generate将能够自动生成您想要的所有其他值,并且使用相同的宽高比,您也可以提供平板电脑尺寸。

答案 1 :(得分:0)

您可以将“布局”窗口小部件宽度定义为match_parent,将高度定义为wrap_content。然后定义一些全球比率参数。

然后程序化做类似的事情:

layoutView.addOnLayoutChangeListener(
            new View.OnLayoutChangeListener() {
                @Override
                public void onLayoutChange (View v,
                                            int left,
                                            int top,
                                            int right,
                                            int bottom,
                                            int oldLeft,
                                            int oldTop,
                                            int oldRight,
                                            int oldBottom) {


                   viewHeightPixel = (int) (layoutView.getWidth() / VIEW_RATIO);
                   ViewGroup.LayoutParams lp;
                   lp = layoutView.getLayoutParams();
                   if (lp.height != viewHeightPixel ) {
                       lp.height = viewHeightPixel ;
                       layoutView.setLayoutParams(lp);
                   }

                    layoutView.removeOnLayoutChangeListener(this);

                }
            }
    ); 

这样你就不会"绑定"您对特定高度/宽度的看法会在更改比率/尺寸时使您的生活变得困难