2012-01-31 6 views
0

사용자가 화면의 1/4을 누르면 내 앱의 배경 이미지를 변경하려고합니다. 내가 지금까지 한 일을 게시했지만 작동하지 않습니다. 또한 내 리소스 폴더에 저장 한 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

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

먼저 u는 u는 XML에서 만든 레이아웃의 자식으로 만들어 (절)보기를 추가하십시오. 그런 다음 레이아웃 매개 변수를 사용하여 뷰의 높이와 너비를 설정합니다 (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에 뷰를 추가하여 수행 할 수 있으며 View vv = (View) findViewById (R.id.view_name); vv.setOnTouchListener (this); 또는 LinearLayout lay = (LinearLayout) findViewById (R.id.myname) lay.addView (vv); (이 경우 레이아웃에보기를 추가하기 전에 뷰의 높이와 너비를 설정해야합니다. – ShineDown