当我从xml加载ImageView
并旋转时,它按预期工作
在课堂上创建ImageView
时,它没有按预期工作。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_main);
layout = (LinearLayout) findViewById(R.id.layout);
//iv = ((ImageView)findViewById(R.id.image));
iv = new ImageView(this);
iv.setBackgroundResource(R.drawable.ic_launcher);
layout.addView(iv);
iv.setBackgroundResource(R.drawable.ic_launcher);
iv.setAdjustViewBounds(true);
iv.setImageMatrix(mMatrix);
iv.setScaleType(ScaleType.MATRIX);
rotateXform();
}
private void rotateXform() {
if (isRotationOriginalValue) {
mMatrix.postRotate((float) 180, centerX, centerY);
} else {
mMatrix.postRotate((float) -180, centerX, centerY);
}
isRotationOriginalValue = !isRotationOriginalValue;
iv.setImageMatrix(mMatrix);
iv.invalidate();
}
答案 0 :(得分:0)
您没有设置图像,而是设置背景。
与任何其他视图一样,ImageView
可以具有背景,该背景独立于图像本身。通常背景隐藏在图像后面,但如果设置填充或使用半透明图像,您将看到两者。
所以只需替换
iv.setBackgroundResource(R.drawable.ic_launcher);
与
iv.setImageResource(R.drawable.ic_launcher);
你会看到它旋转。