-1
我试图动态地构建一个布局,因此它缩放并在所有屏幕尺寸和分辨率上看起来差不多相同。我通过以编程方式将我的视图放入RelativeLayout
并根据某个因子缩放所有内容来完成此操作。RelativeLayout边距缩小ImageView
虽然我在移动ImageView
时发现有些奇怪,但边距值越大,ImageView
越小。尝试将事情放在正确的位置和大小时,这会变得非常烦人。
private void initializeObjects() {
Display display = getWindowManager().getDefaultDisplay();
Point screenSize = new Point();
display.getSize(screenSize);
float scale = screenSize.x/((screenSize.x < screenSize.y) ? 480 : 800); // Scale according to Galaxy S II resolution
RelativeLayout screenLayout = (RelativeLayout) findViewById(R.id.main_layout);
mRobotView = new ImageView(getApplicationContext());
mRobotView.setImageResource(R.drawable.soomla_logo_new); // a 743 x 720 png
mRobotView.setScaleX(scale * 100/743); // Make sure the image is 100 "units" in size
mRobotView.setScaleY(scale * 100/720);
mRobotView.setPivotX(scale * 100/743); // reset the image origin according to scale
mRobotView.setPivotY(scale * 100/720);
RelativeLayout.LayoutParams robotParams = new RelativeLayout.LayoutParams(743, 720);
robotParams.leftMargin = 0xDEADBEEF; // The bigger these get the smaller the view gets
robotParams.topMargin = 0xDEADBEEF;
screenLayout.addView(mRobotView, robotParams);
}
任何想法是什么造成这种情况?
的图像,一切都将自动缩放。或者它是动态的,因为在启动时,你不知道你需要展示什么? – banzai86
尝试更改父布局的重力 – JiTHiN