2013-11-28 100 views
-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); 
} 

任何想法是什么造成这种情况?

+0

的图像,一切都将自动缩放。或者它是动态的,因为在启动时,你不知道你需要展示什么? – banzai86

+0

尝试更改父布局的重力 – JiTHiN

回答

0

使用

android:layout_height="720px" 
android:layout_height="743px" 

main_layout.xml有如果使用的是DP /垂单位的布局文件不收缩

+0

以固定比例设置宽度/高度,希望它们根据屏幕大小更改大小。 –