2
希望這是完成我的應用程序的最後一步。我需要在可點擊的畫布內創建一個位圖,以便調用將播放視頻的新活動(mp4)或在當前活動中播放視頻。使用畫布可點擊的位圖
顯示畫布和位圖的類是我反覆使用的類來顯示縮略圖的完整圖像。圖像ID通過一個意圖傳遞。下面是完整的圖像活動的代碼(我這人非常的小白和使用本網站和其他人一起一步拼湊我的代碼,在一個時間,所以我道歉,如果它不乾淨):
public class full_image extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(new BitmapView(this));
getWindow().setBackgroundDrawableResource(R.drawable.bground);
getWindow().setWindowAnimations(0);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
class BitmapView extends View {
public BitmapView(Context context) {
super(context);
}
@Override
public void onDraw(Canvas canvas) {
int imgid = getIntent().getIntExtra("Full",0);
Bitmap fullimage = BitmapFactory.decodeResource(getResources(),imgid);
Bitmap playButton = BitmapFactory.decodeResource(getResources(), R.drawable.bt_play); //Added for Video
Display display = getWindowManager().getDefaultDisplay();
int fpWidth = fullimage.getWidth();
int fpHeight = fullimage.getHeight();
int playWidth = playButton.getWidth();
int playHeight = playButton.getHeight();
int screenWidth = display.getWidth();
int screenHeight = display.getHeight();
int leftPoint = screenWidth/2 - fpWidth/2;
int topPoint = screenHeight/2 - fpHeight/2;
int leftPlayPoint = screenWidth/2 - playWidth/2;
int topPlayPoint = screenHeight/2 - playHeight/2;
canvas.drawBitmap(fullimage,leftPoint,topPoint,null);
canvas.drawBitmap(playButton,leftPlayPoint,topPlayPoint,null);
}
}
}
如果可能的話,我只想讓playButton放置onClickListener,但如果它更容易,我可以使整個畫布可點擊(如果甚至可以)。
我讀到另一個問題,有一個建議使用TouchEvent。我試着走那條路,但無法讓它工作。這是正確的道路,我只是需要更多地使用它才能使其發揮作用?
感謝,J
其他的東西:這裏
是一個代碼片段我在另一個問題找到。我會在哪裏將這些代碼放入上面提供的代碼中。
public boolean onTouchEvent(MotionEvent event){
int action = event.getAction();
int x = event.getX() // or getRawX();
int y = event.getY();
switch(action){
case MotionEvent.ACTION_DOWN:
if (x >= xOfYourBitmap && x < (xOfYourBitmap + yourBitmap.getWidth())
&& y >= yOfYourBitmap && y < (yOfYourBitmap + yourBitmap.getHeight())) {
//tada, if this is true, you've started your click inside your bitmap
}
break;
}
}
哪裏會把onTouch方法?我試圖把它放在OnDraw區域之外,但是我不能引用我的位圖。當我嘗試將它放入OnDraw區域時,出現錯誤。看到我上面的原始問題。我在底部添加了一些額外的代碼。有關我在哪裏添加此代碼的任何建議?謝謝 – jbellomy 2011-05-26 06:52:29
把它放在OnDraw和BitmapView(你的類)的內部,並創建位圖的局部變量... – 2011-05-26 07:18:12
你不知道我現在有多開心。第一次嘗試。非常感謝你的幫助。 – jbellomy 2011-05-27 06:12:11