2011-11-09 19 views
1

これは私のアプリケーションから作成されたものです。イメージを動的にアンドロイドで移動

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

    getWindow().setFormat(PixelFormat.UNKNOWN); 
    surfaceView = (SurfaceView)findViewById(R.id.camerapreview); 
    surfaceHolder = surfaceView.getHolder(); 
    surfaceHolder.addCallback(this); 
    surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 

    controlInflater = LayoutInflater.from(getBaseContext()); 
    viewControl = controlInflater.inflate(R.layout.control, null); 
    image =(ImageView) viewControl.findViewById(R.id.img); 
    LayoutParams layoutParamsControl 
     = new LayoutParams(LayoutParams.FILL_PARENT, 
     LayoutParams.FILL_PARENT); 
    this.addContentView(viewControl, layoutParamsControl); 

} 

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" 
     > 
<ImageView 
    android:id="@+id/img" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/ic_launcher" 
    /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/button" 
/> 

</LinearLayout> 

control.xml

はどのようにして、ボタンをクリックしたときに、この画像を移動することができます。 実際には、この画像を現在のピクセル位置から別の位置に移動したいと思っています。

ボタンクリックでこれを試しました。

b =(Button)findViewById(R.id.button); 
     b.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       System.out.println("Button clicked"); 
       TranslateAnimation anim = new TranslateAnimation(0,0,200,200);    
       anim.setDuration(2000); 
       image.setAnimation(anim); 
      } 
     }); 

ただし、画像は2秒間消えます。私は間違って何をしています。 いずれかのヘルプをしてください。 実際に私は加速度計の変更で画像を動かしたいと思っています。

答えて

1

アニメーションを使用している場合、アニメーションの完了後、イメージは開始位置に戻ります。

あなたはこのように実現したい場合は、単に、アニメーションの継続時間を増やす

それとも、アニメーションせずに別の画像一つの場所を拡大したい場合は、

は、アニメーションを削除し、ちょうどあなたのボタンのクリックメソッドに使用します

ImageView.scrollBy(scrollByX, scrollByY); 

詳細はAndroid: Scrolling an Imageviewをご覧ください。

関連する問題