2013-10-11 84 views
0

我只是試圖將我的imageView放置在屏幕上的所需位置,但由於某種原因,圖片總是有點偏離,它不在正確的位置。例如,如果我希望它放在屏幕中間,這是我的代碼。以編程方式創建的imageview的位置android

獲取屏幕尺寸:

DisplayMetrics displaymetrics = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); 
    height = displaymetrics.heightPixels; 
    width = displaymetrics.widthPixels; 

獲取圖片大小:

BitmapFactory.Options o = new BitmapFactory.Options(); 
    o.inTargetDensity = DisplayMetrics.DENSITY_DEFAULT; 
    Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.car1, o); 
    int w = bmp.getWidth(); 
    int h = bmp.getHeight(); 

創建和定位的ImageView:

image = new ImageView(this); 


    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
          RelativeLayout.LayoutParams.MATCH_PARENT, 
          RelativeLayout.LayoutParams.MATCH_PARENT); 

    image.setScaleType(ImageView.ScaleType.MATRIX); 
    image.setImageResource(R.drawable.car1); 
    image.setId(1); 


    params.setMargins((width/2)-w,(height/2)-h, 0, 0); 


    ((ViewGroup) mainLayout).addView(image, params); 

我的ImageView的是不是在屏幕中間我不知道爲什麼,有什麼幫助?我以屏幕中間爲例,我需要各種職位。

回答

0

我不確定ImageView的定位點是圖像的中間還是左上角。如果是左上角,則需要修改保證金計算:

params.setMargins((width-w)/2,(height-h)/2, 0, 0); 
相關問題