2017-12-14 16 views
0

私はこのメソッドを呼び出して、すべての呼び出しで指定された位置にポインタを再描画する必要があります。同じメソッドのaddViewとremoveViewを同じにする

ImageView ivPointer=null; 
public void moveCursor(Bitmap bmPuntero, int x, int y) 
{ 
    RelativeLayout rl = (RelativeLayout) findViewById(R.id.gamelayout); 

    if (ivPointer!=null) 
     rl.removeView(ivPointer); 


    ivPointer = new ImageView(this); 

    ivPointer.setImageBitmap(bmPuntero); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(65, 65); 
    params.leftMargin = x; 
    params.topMargin = y; 
    rl.addView(ivPointer, params); 

} 

その結果、ビットマップが表示されません。ビューを削除する行を削除すると、ビットマップの描画方法が複数回表示されるので、追加部分が正しいはずです。

+0

あなたはあなたの方法の外に、あなたのレイアウトを移動しようとしましたか? – Roljhon

+0

私は今、同じ結果を試しました – takluiper

+0

それは私がメソッドを呼び出していた頻度に関連していました。周波数を低くして呼び出すと、このメソッドを呼び出す位置を更新するたびにイメージが点滅します。 – takluiper

答えて

1

これを試してみてください:

{ 
    // Somewhere (in onCreate of the Activity for example): 

    RelativeLayout rl = (RelativeLayout) findViewById(R.id.gamelayout); 
    ImageView ivPointer = initPointer(this, bmPuntero); // Get image from somewhere 
    rl.addView(ivPointer); 
} 


// To update the cursor's po 
public static void moveCursor(ImageView pointer, int x, int y) { 
    RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) pointer.getLayoutParams(); 
    params.leftMargin = x; 
    params.topMargin = y; 

    pointer.setLayoutParams(params); 
    pointer.requestLayout(); // Refresh the layout 
} 

// Call this method to initialise the pointer (in onCreate of your Activity 
// for example) 
public static ImageView initPointer(Context context, Bitmap bmp) { 
    // Define the LayoutParams 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(65, 65); 
    params.leftMargin = DEFAULT_POS_X; // TODO: Constants to be defined 
    params.topMargin = DEFAULT_POS_Y; 

    // Init the ImageView 
    ImageView pointer = new ImageView(context); 
    pointer.setImageBitmap(bmp); 
    pointer.setLayoutParams(params); 

    return pointer; 
} 
+0

は素晴らしいですが、それはあなたに依存します!ありがとう – takluiper

関連する問題