2013-05-03 3 views
-1

У меня есть одна кнопка и один вид изображения внизу экрана. когда нажимается кнопка, я хочу переместить изображение в центр моего экрана. Я пытаюсь использовать следующий код. я не поправляюсь. пожалуйста помогите.Android moving Просмотр изображения в центр экрана

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-файле? (Относительный или Linear) – AnilPatel

ответ

0

ли это на кнопки мыши:

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

почему это не перемещение с помощью анимации перевода? – Balaji

-1

Ваш макет файл кода будет лучше для отладки. В любом случае я предполагаю, что вы используете Relative 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); 

       } 
      }); 

ИЛИ
Редактировать
с анимированными

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

+0

зависит от вашей логики. – AnilPatel

Смежные вопросы