android动态修改surface宽高
时间: 2023-09-18 20:15:56 浏览: 137
要动态修改SurfaceView的宽高,可以使用SurfaceHolder中提供的setFixedSize()方法。你可以在代码中使用如下语句来设置SurfaceView的宽高:
```
SurfaceHolder holder = surfaceView.getHolder();
holder.setFixedSize(width, height);
```
其中,width和height分别为你想设置的SurfaceView的宽和高。这样,就可以动态修改SurfaceView的宽高了。需要注意的是,该方法必须在SurfaceView创建之前调用才能生效。
相关问题
android 更新surface 宽高
要更新Surface的宽高,你可以在SurfaceView的SurfaceHolder.Callback接口中的surfaceChanged()方法中实现。在这个方法中,你可以获取到Surface的最新宽高,然后根据你的需求进行处理。
下面是一个示例代码:
```
public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback {
private SurfaceHolder holder;
public MySurfaceView(Context context) {
super(context);
holder = getHolder();
holder.addCallback(this);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// 更新Surface的宽高
// TODO: 根据你的需求进行处理
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// Surface创建时的处理
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// Surface销毁时的处理
}
}
```
在surfaceChanged()方法中,你可以通过width和height获取到Surface的最新宽高。你可以根据你的需求进行处理,比如重新布局、修改画布大小等。
android动态修改surface角度
要动态修改SurfaceView的角度,可以使用SurfaceView的setRotation()方法。你可以在代码中使用如下语句来设置SurfaceView的角度:
```
surfaceView.setRotation(angle);
```
其中,angle为你想设置的角度,可以是任意浮点数。使用该方法可以动态改变SurfaceView的角度,但需要注意的是,该方法只能在API Level 11及以上版本中使用。如果你的App需要支持低版本的Android系统,可以考虑使用旋转动画来实现类似的效果。