2012-05-14 16 views
0

私は画像の説明を与えているテキストボックスを持っているアプリケーションを作成しています。タッチでは、画像の位置を説明しています。下側には2つのボタンimage.what私はこれのためにする必要がありますか?私はそのことを理解していません。別の画像を表示

私は他のクラスの画像を使用していますが、私はその画像を呼び出していますが、動作していません。私は3日からこのことに固執しています。

私がこの質問をしていると思う人がいれば、申し訳ありません。

 image i want this way 私のコードは、第1の画像

public class FirstImage extends ImageView { 
    float a=0; 
    float b=0; 

    TextView t= (TextView) findViewById(R.id.textView1); 

    public FirstImage(Context context) { 
     super(context); 
     // TODO Auto-generated constructor stub 

    } 

    public FirstImage(Context context, AttributeSet attrs) { 
      super(context, attrs); 

    } 




    public boolean onTouch(MotionEvent me){ 
     switch(me.getAction()){ 
     case MotionEvent.ACTION_DOWN: 
      a=me.getX(); 
      b= me.getY(); 
      pageinfo(a,b); 
      break; 
     case MotionEvent.ACTION_MOVE: 
      a=me.getX(); 
      b= me.getY(); 
      pageinfo(a,b); 
      break; 
     case MotionEvent.ACTION_UP: 
      a=me.getX(); 
      b= me.getY(); 
      pageinfo(a,b); 
      break; 
     case MotionEvent.ACTION_OUTSIDE: 
      a=me.getX(); 
      b= me.getY(); 
      pageinfo(a,b); 
      break; 
     default: return false; 
     } 
     return true; 

    } 

    public void pageinfo(float a,float b){ 

     t.setText(Float.toString(a)+"x"+Float.toString(b)+"y"); 

    } 



} 

私は次のようにレイアウトファイル内のコールを持っている...

<com.example.androidtablayout.FirstImage 
     android:id="@+id/myandroid" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:src="@drawable/human" 
     /> 

の次の通りですが、それが表示されない原因を私は理解していないのです任意のontouchイベント。

+1

問題をよりよく理解するには、関連するコード(アクティビティソース、レイアウト)を共有する必要があります。また、例外のLogcat出力も役立ちます。 – rekaszeru

+0

このqustionに従ってくださいhttp://stackoverflow.com/questions/10577848/displaying-image-from-other-class-in-android – Ashishsingh

+0

私はあなたが達成しようとしていることとあなたが立ち往生していることを理解するのに苦労しています。あなたは何をやっているのか(コード、スクリーンショット、テキスト)、起こると予想されること、代わりに何が起こるのかをよく説明できますか? "それは動作していません"の代わりに、例外をスローするか、コンパイルしない、ユーザーインターフェイスの予期しない要素を表示する、フリーズするかなど、私たちに教えてください。 – Codo

答えて

0

(リンク質問から取らVideosActivityクラスで、)次のコードは、問題である:

FirstImage i= new FirstImage (this); 

それはあなたのクラスの暗黙的に作成されたコンストラクタでFirstImageインスタンスを作成します。しかし、アクティビティのライフサイクルの早い段階でUIウィジェットを生成することはできません。レイアウトインフレータがあなたのためにすべてのUIウィジェットを生成するので、あなたはどちらかをする必要はありません。

そうちょうどにコードを変更します。

行う必要があります
FirstImage i; 

インスタンス変数iを初期化する正しい方法は、すでにfindViewById()onCreate()にコールするコードにあります。

更新:

あなたが画像をタッチするとonTouchが呼び出されることを期待しているようです。しかし、onTouchは、オーバーライドできるスーパークラスのメソッドではありません。代わりに、onTouchView.OnTouchListenerインターフェイスのメソッドです。

これを修正するには、インスタンスをリスナーとして登録し(setOnTouchListenerを使用)、View.OnTouchListenerを実装するよう宣言します。またはメソッド名をOnTouchEvent(上書き可能)に変更します。

+0

私はちょうどその方法を使用しましたが、それは私にエラーを投げています – Ashishsingh

+0

例外も同様にスローすると、それは別の例外または少なくとも異なるスタックトレースを持つ例外。完全なstracktraceを投稿して、私たちに推測させてください。 – Codo

+0

今、私はそのことを解決しますが、今は画像に触れているときに何も表示されていません。自分のコードを確認できます。私は私の質問でそれを編集しました。 – Ashishsingh