我对android有点新,但我对java很了解。
作为一种简单的可扩展性手段,我使用这些简单的功能:
public void scaleMyView(float s) {
scaleFactor = scaleFactor + s;
// s will usually be like 0.1 or -0.1 = 10% size gain/loss
View myMainView = findViewById(R.id.MyMainView);
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int x = size.x;
int y = size.y;
myMainView.setScaleX(scaleFactor);
myMainView.setScaleY(scaleFactor);
myMainView.layout(0, 0, ((int)(x/scaleFactor)), ((int)(y/scaleFactor)))
myMainView.setPivotX(0);
myMainView.setPivotY(getActionBar().getHeight());
}
这正是我想要的,改变主视图及其中的所有内容并保持原位。
现在出现了问题:
每当我将片段添加到该主视图的子视图时,“布局”部分将被重置,虽然缩放和位置保持不变,但大小会缩小回默认值。 (片段很简单,基本上都很简单。)
我尝试了很多东西,但我仍然不知道在哪里或如何解决这个问题。
非常感谢任何帮助!
答案 0 :(得分:0)
尝试使用" addOnLayoutChangeListener" mainView上的方法:
myMainView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(
View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8)
{
// set view properties here
}
});
myMainView.requestLayout();