2012-01-31 8 views
0

Я работаю над изменением фонового изображения своего приложения, когда пользователь нажимает четверть экрана. Я опубликовал то, что я сделал до сих пор, но не работает. Я также не уверен, как ссылаться на png-изображение, которое я сохранил в своей папке ресурсов. Благодарю.OnTouch Change Background Image

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

Сначала добавьте мнение (ст) у созданного в детстве макета у созданного в XML. Затем установите высоту и ширину в представлении (vv) с помощью параметров макета.

Или вы можете создать представление в XML и получить его с помощью findViewById так же, как и в текстовом представлении. Затем напишите vv.setOnTouchListener (this);

Тогда в onTouch попробовать

GetWindow() setBackgroundDrawableResource (R.drawable.background_2).

+0

Итак, у меня есть линейный макет и внутри него просто текстовое представление. Я добавляю vv к линейной компоновке? Выполняю ли я это в файле XML или файле Java? Что-то вроде LinearLayout lay = (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) then lay.addView (vv); (В этом случае вам нужно установить высоту и ширину в представлении перед добавлением представления в макет) – ShineDown