Android 如何保持图像的纵横比?

Android 如何保持图像的纵横比?,android,image,android-layout,Android,Image,Android Layout,如何保持图像的纵横比,如纵向显示的3:4,则在横向移动设备时,该图像应转换为9:16,且图像不应拉伸。 锄头可以保养这个请帮我提前谢谢 我的代码是 我想在图像切换器上设置这个图像。如何维护在imageswicher上设置的每个图像应该是纵横比 public View makeView() { ImageView imageView = new ImageView(this); imageView.setAdjustViewBounds(true);

如何保持图像的纵横比,如纵向显示的3:4,则在横向移动设备时,该图像应转换为9:16,且图像不应拉伸。 锄头可以保养这个请帮我提前谢谢

我的代码是 我想在图像切换器上设置这个图像。如何维护在imageswicher上设置的每个图像应该是纵横比

public View makeView() {

        ImageView imageView = new ImageView(this);

        imageView.setAdjustViewBounds(true);
        WindowManager window = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  
        Display display = window.getDefaultDisplay();

        imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
                display.getWidth(), LayoutParams.FILL_PARENT));
        imageView.setBackgroundResource(R.drawable.border);
            imageView.setPadding(8, 8, 8, 8);
        imageView.setImageBitmap(image);
        imageView.setScaleType(ScaleType.FIT_XY);
}

ScaleType.FIT_XY不保留纵横比。它不是用于照片,而是用于装饰图像。尝试ScaleType.CENTER\u裁剪-您的图像将被裁剪以适应视图边界,或ScaleType.CENTER\u内部-您的图像将被缩放以适应视图边界,以保持图像的纵横比。

而不是使用:

public View makeView() {

        ImageView imageView = new ImageView(this);

        imageView.setAdjustViewBounds(true);
        WindowManager window = (WindowManager) getSystemService(Context.WINDOW_SERVICE);  
        Display display = window.getDefaultDisplay();

        imageView.setLayoutParams(new ImageSwitcher.LayoutParams(
                display.getWidth(), LayoutParams.FILL_PARENT));
        imageView.setBackgroundResource(R.drawable.border);
            imageView.setPadding(8, 8, 8, 8);
        imageView.setImageBitmap(image);
        imageView.setScaleType(ScaleType.FIT_XY);
}
    imageView.setBackgroundResource(R.drawable.border);
使用:

    imageView.setImageResource(R.drawable.border);

另请参见答案。

布局如何?但当设备移入Landscape时,它无法保持纵横比布局有何问题?可能您应该将display.getWidth()替换为LayoutParams.FILL\u父项?似乎display.getWidth()作为LayoutParams.width是一个肮脏的攻击,它在所有条件下都不能很好地工作。是的,但是使用fit center以适当的方式保持纵横比对我来说很好。谢谢这对你有帮助,,[看这个][1][1]: