2012-01-31 27 views
0

ユーザーが画面の4分の1を押したときに、私のアプリの背景画像を変更しようとしています。私はこれまでに行ったことを投稿しましたが、動作していません。私は自分のリソースフォルダに保存したPNG画像をどのように参照するかもわかりません。ありがとう。OnTouch背景画像を変更する

public class TouchtwoActivity extends Activity implements OnTouchListener { 
    /** Called when the activity is first created. */ 
    float x,y; 
    TextView tv = (TextView)findViewById(R.id.textv); 
    View vv; 
     @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.eight); 

    vv.setOnTouchListener(this); 
} 
@Override 
public boolean onTouch(View v, MotionEvent event) { 
    // TODO Auto-generated method stub 

    x = event.getX(); 
    y = event.getY(); 
    if(x > getWindowManager().getDefaultDisplay().getWidth()/2) 
    { 
     changeImage(); 
    } 
    return true;   
} 

public void changeImage() 
{ 
    getWindow().setBackgroundDrawable(Drawable.createFromPath("name of png from drawable)); 
} 

}

答えて

0

(VV)uはuはXMLで作成したレイアウトの子として作成されたビューを追加し、この

getWindow().setBackgroundDrawableResource(R.drawable.background_2); 
2

ファーストをお試しください。レイアウトパラメータを使用して、高さと幅をビュー(vv)に設定します。

または、XMLでビューを作成し、テキストビューに行ったのと同じようにfindViewByIdを使用して取得できます。vv.setOnTouchListener(this); 。

はその後onTouchに

は、GetWindow()setBackgroundDrawableResource(R.drawable.background_2)をしてみてください。

+0

私は線形レイアウトを持っており、その中にはテキストビューしかありません。線形レイアウトにvvを追加しますか?私はXMLファイルまたはJavaファイル内でそれを行いますか? LinearLayoutのようなもの=(LinearLayout)findViewById(R.id.myname)そしてlay.addView(vv);? – ncg33

+0

Uは、xmlでビューを追加することでそれを行うことができます。また、vv =(View)findViewById(R.id.view_name); vv.setOnTouchListener(this); またはLinearLayout lay =(LinearLayout)findViewById(R.id.myname)次にlay.addView(vv);(レイアウトにビューを追加する前にビューの高さと幅を設定する必要があります) – ShineDown

関連する問題