我正在尝试创建一个简单的放大/缩小视图。
所以我扩展LinearLayout
并添加两个ImaegView
作为in
和out
按钮,这是代码:
public class ZoomView extends LinearLayout{
private ImageView mZoomIn;
private ImageView mZoomOut;
public ZoomView(Context context, AttributeSet attrs) {
super(context, attrs);
this.setupView();
}
private void setupView() {
mZoomIn = new ImageView(getContext());
mZoomOut = new ImageView(getContext());
mZoomIn.setBackgroundDrawable(getResources().getDrawable(R.drawable.map_zoomin_btn));
mZoomIn.setOnClickListener(this);
mZoomOut.setBackgroundDrawable(getResources().getDrawable(R.drawable.map_zoomout_btn));
mZoomOut.setOnClickListener(this);
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
setOrientation(LinearLayout.HORIZONTAL);
} else {
setOrientation(LinearLayout.VERTICAL);
}
addView(mZoomIn);
addView(mZoomOut);
}
}
如代码所示,我想ZoomView
根据屏幕改变它的方向。
但是我只有两张图片:
现在这就是我在portrait
视图中得到的(这就是我想要的):
但是,这是为了landscape
查看:
虽然我想landscape
查看这个:
然后我想知道我是否可以在没有新位图的情况下实现我的要求?也许旋转图像视图或其他东西?我试过了:
mZoomIn.setRotate(-90);
或者
Matrix matrix = new Matrix();
matrix.postRotate(-90);
mZoomIn.setScaleType(ImageView.ScaleType.MATRIX); //required
mZoomIn.setImageMatrix(matrix);
但这不起作用。有什么建议吗?