android 控件方向旋转90度,android – 旋转视图层次90度
我正在工作的一個子類的FrameLayout,應該是將所有的孩子旋轉90度。我這樣做是為了克服Android 2.1及以下版本中僅存在于風景中的攝像機限制,將活動放置在橫向,但將我的攝像機覆蓋放置在此framelayout覆蓋中,以使其看起來像是縱向(
this is how Layar does it)到完成這個,我適應
Jeff Sharkey’s code旋轉視圖。我的問題是,我可以旋轉Framelayout,但我不能調整它以匹配新的維度。所以在我的g1,而不是一個320×480縱向視圖在480×320相機視圖的風景,我得到一個320×320盒子在中間顯示我的肖像視圖與側面切碎。
這里是我的代碼到目前為止:
public class RotateLayout extends FrameLayout {
private Matrix mForward = new Matrix();
private Matrix mReverse = new Matrix();
private float[] mTemp = new float[2];
public RotateLayout(Context context) {
super(context);
}
public RotateLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
/* (non-Javadoc)
* @see android.widget.FrameLayout#onMeasure(int, int)
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
//This didn't work:
//super.onMeasure(heightMeasureSpec, widthMeasureSpec);
}
/* (non-Javadoc)
* @see android.widget.FrameLayout#onSizeChanged(int, int, int, int)
*/
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
}
@Override
protected void dispatchDraw(Canvas canvas) {
canvas.rotate(270, getWidth()/2, getHeight()/2);
//This code will stretch the canvas to accommodate the new screen size. This is not what I want.
//float scaleX=(float)getHeight()/getWidth();
//float scaleY=(float)getWidth()/getHeight();
//canvas.scale(scaleX, scaleY, getWidth()/2, getHeight()/2);
mForward = canvas.getMatrix();
mForward.invert(mReverse);
canvas.save();
canvas.setMatrix(mForward); //This is the matrix we need to use for proper positioning of touch events
super.dispatchDraw(canvas);
canvas.restore();
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
final float[] temp = mTemp;
temp[0] = event.getX();
temp[1] = event.getY();
mReverse.mapPoints(temp);
event.setLocation(temp[0], temp[1]);
return super.dispatchTouchEvent(event);
}
}
我已經嘗試覆蓋OnMeasure切換視圖的X和Y維度,但還沒有能夠讓它工作。
您可以提供任何幫助,非常感謝。
總結
以上是生活随笔為你收集整理的android 控件方向旋转90度,android – 旋转视图层次90度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jstl 获取 javascript 定
- 下一篇: php 公众号验证回调方法_微信公众号关