布局使用不同的设备重新缩放

时间:2017-04-23 14:10:03

标签: android xml android-layout

很抱歉这篇文章看起来很简单,但我不明白我的问题。 我正在使用xml中的android studio开发一个界面。我使用了一些PictureButton,但我希望它们能够使用不同的设备进行相同的演示。

我在文件夹中添加了不同的大小(hdpi,xhdpi,xxhdpi ...)但是当我使用像nexus 6P这样的设备时我得到了这个:Picture 1 - Nexus 6P)当我使用nexus 10时我就是得到了(Picture 2 - Nexus 10P)。 问题是,这些设备在xxhdpi中,但它们没有相同的分辨率。

对于每个按钮,我使用这个xml代码:

public class MainActivity extends ActionBarActivity {
    Handler handler = new Handler();
    ArrayList<String> toastMQ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        toastMQ = new ArrayList<String>();
        setContentView(R.layout.activity_main);

        toastMQ.add("Message1");
        try {
            Thread.sleep(2000);
        } catch (Exception e) {
            e.printStackTrace();
        }
        callToast1();
        PreSleepToast pst = new PreSleepToast();
        pst.execute();
    }
    private Runnable r = new Runnable() {
        @Override
        public void run() {
            for( int i = 0; i < toastMQ.size(); i++ ){
                Toast t = Toast.makeText(getApplicationContext(), toastMQ.get(i), Toast.LENGTH_SHORT);
                t.show();
            }
        }
     };

    public class PreSleepToast extends AsyncTask<Void, byte[], Void> {
        /**
         * The sender socket on which we send connections.
         */
        public PreSleepToast() {
        }

        /**
         * Polling loop for outgoing connections.
         */
        @Override
        protected Void doInBackground(Void... params) {
            handler.post(r);
            return null;
        };
    };

    public void callToast1(){
        toastMQ.add("Message2");
    }
}

我不明白为什么他们没有重新调整。

亲切

2 个答案:

答案 0 :(得分:0)

问题是你给出了宽度和高度的硬核尺寸值,在这种情况下,图像取自hdpi xhdpi其他任何东西,但你需要在dimen值文件夹值21中定义每个维度值,值小,值大一旦你设置我认为你可以看到你最好的结果

并访问: - How to define dimens.xml for every different screen size in android?

答案 1 :(得分:0)

你应该使用layout_width =“match_parent”并在imageview中添加adjustViewBounds =“true”,并让高度为wrap_content。