我會實現對應用程序的OnTouchListener
,然後在onTouch
方法,繼續檢查,如果觸摸事件的當前位置是的邊界視圖框的範圍內。如果是,則應用新的背景,如果不適用原始背景。
由於各方面的意見落實setBackgroundColor
我沒有做任何鑄造TextView
但例子就足夠了,至少作爲一個起點,進一步開發應用程序。
這個完整的代碼如下:
public class Main extends Activity implements OnTouchListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Set the listener for the parent/container view
findViewById(R.id.cont).setOnTouchListener(this);
//Get a hold of the view and create the Rect for the bounds
View target = findViewById(R.id.target);
Rect b = new Rect();
//Get the bounding box of the target view into `b`
target.getGlobalVisibleRect(b);
}
public boolean onTouch(View v, MotionEvent event) {
//Check if it's within the bounds or not
if(b.contains((int)event.getRawX(),(int) event.getRawY())){
target.setBackgroundColor(0xffff0000);
}else{
target.setBackgroundColor(0xff000000);
}
//You need to return true to keep on checking the event
return true;
}
}
至於所述用戶接口爲前面的代碼,它只是一個ID cont
並用的圖(在你的情況下的TextView
)的線性佈局ID target
。其餘的完全是默認的,所以我在這裏粘貼它沒有意義。 注意我只在一個模擬器上測試它,當在真實設備上嘗試它時,但是據我所知,它應該沒問題。
相關文章:
或許應該申報'onCreate'方法外'B'。只是說。 –
什麼是t,你在哪裏申報?它應該是一個正確的權利?! – Secko
它應該是'b'抱歉,更新 –