2013-05-03 98 views
-1

我在屏幕底部有一個按鈕和一個圖像視圖。當點擊按鈕時,我想將圖像視圖移動到屏幕中央。我試着用下面的代碼。我沒有得到正確的。請幫幫我。Android移動圖像視圖到屏幕中心

my.java文件

 button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      imageview= (ImageView)findViewById(R.id.imageView1); 
      DisplayMetrics metrics = new DisplayMetrics(); 
      getWindowManager().getDefaultDisplay().getMetrics(metrics); 

     float x=metrics.heightPixels/2; 
     float y=metrics.widthPixels/2; 
     TranslateAnimation anim = new TranslateAnimation(0, x , 0, y); 
     anim.setDuration(1000); 
     anim.setFillAfter(true); 
      imageview.startAnimation(anim); 

     } 
    }); 
+0

爲.xml文件,該文件的佈局使用?(相對或線性) – AnilPatel 2013-05-03 06:57:49

回答

0

做這個按鈕點擊:

LayoutParams params = (RelativeLayout.LayoutParams)imageView.getLayoutParams(); 
params.addRule(RelativeLayout.CENTER_HORIZONTAL); 
params.addRule(RelativeLayout.CENTER_VERTICAL); 
imageView.setLayoutParams(params); 
+0

它爲什麼不移動翻譯動畫? – Balaji 2013-05-03 06:39:50

-1

您的佈局文件中的代碼將是更好的調試。無論如何,我假設你正在使用相對Laytout作爲父按鈕和圖像,因爲它會更容易做到這一點。

4

沒有動畫

button.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        RelativeLayout.LayoutParams parms2 = new RelativeLayout.LayoutParams(width,height); 
        parms2.addRule(RelativeLayout.CENTER_VERTICAL); 
        parms2.addRule(RelativeLayout.CENTER_HORIZONTAL); 
         imageview.setLayoutParams(parms2); 

       } 
      }); 

OR
編輯
隨着動畫

RelativeLayout root = (RelativeLayout) findViewById(R.id.rl1); 
       DisplayMetrics dm = new DisplayMetrics(); 
       // this.getWindowManager().getDefaultDisplay().getMetrics(dm); 
       getWindowManager().getDefaultDisplay().getMetrics(dm); 
       int statusBarOffset = dm.heightPixels - root.getMeasuredHeight(); 

       int originalPos[] = new int[2]; 
       imageview.getLocationOnScreen(originalPos); 

       int xDest = dm.widthPixels/2; 
       xDest -= (img.getMeasuredWidth()/2); 
       int yDest = dm.heightPixels/2 - (imageview.getMeasuredHeight()/2) - statusBarOffset; 

       TranslateAnimation anim = new TranslateAnimation(0, xDest - originalPos[0] , 0, yDest - originalPos[1]); 
       anim.setDuration(1000); 
       anim.setFillAfter(true); 
       imageview.startAnimation(anim); 
+0

謝謝大家的回覆。如何將圖像視圖移動到翻譯動畫的中心? – Balaji 2013-05-03 07:39:53

+0

取決於你的邏輯。 – AnilPatel 2013-05-03 08:28:59

相關問題