【问题标题】:How to scale ImageView after the orientation is changed?更改方向后如何缩放 ImageView?
【发布时间】:2014-06-30 08:53:11
【问题描述】:

当我旋转屏幕时,ImageView 不会重新缩放图像,但原生 Imageview 会旋转图像。
我怎样才能做到这一点?

项目https://github.com/jasonpolites/gesture-imageview

清单:

<activity android:name="ScaleTypeCenterInsidePortrait"
                  android:configChanges="orientation|screenSize"></activity>

我的 ScaleTypeCenterInsidePortrait 类:

public class ScaleTypeCenterInsidePortrait extends ExampleActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.scale_type_inside_portrait);
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    }

}

【问题讨论】:

  • 明明写的不支持旋转。
  • 是的,我重写了onConfigurationChanged,但是用什么方法重新计算图像比例和重绘布局。

标签: android imageview orientation screen-rotation


【解决方案1】:

在您的代码中替换这些行

public class ScaleTypeCenterInsidePortrait extends ExampleActivity {

ImageView imv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
imv=new ImageView(this);
imv.setimageResource(R.drawable."your image name in the drwable folder");
imv.setscaleType(ScaleType.Center_Inside);

    }
@Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){
            setContentView(imv);
        }
        else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
            setContentView(imv);         
        }
    }

} 并把你表现出来这些行

<activity android:name=".Activity_name"
          android:configChanges="orientation|keyboardHidden">

【讨论】:

  • ImageView 工作正常,但我使用 GestureImageView(第 1 篇文章) - 它不起作用
  • 试试这个,让我知道,GestureImageview giv=GestureImageview)findviewById(R.id."yourGestureImageviewId"); giv.setScaleType(ScaleType.CENTER);//默认scaleType
  • 它可以工作,但方向更改后的布局不会针对实际设备屏幕重新缩放
  • 它有效意味着为我的答案投上一票,伙计并检查你是否在你的 XML 手势图像中添加了这些行:min-scale="0.1" gesture-image:max-scale="10.0" 手势 -图片:严格=“假”
  • 这不是我需要的
猜你喜欢
  • 2015-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 1970-01-01
相关资源
最近更新 更多