我創建了一個圖片視圖並用OnTouchListener
將其移動。我怎樣才能限制移動到屏幕的邊界?如何在android中設置圖片邊界
-1
A
回答
0
你可以計算你的屏幕大小,可以有些怎麼樣這個
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
0
你不想OnTouchListener
,你想OnDragListener
屏幕內修復形象的舉動。查找不同的DragEvent
動作類型,以獲取有關視圖所在位置的信息。從那裏,只要你知道你的尺寸View
,你可以禁止它移出屏幕。
1
我沒有類似的東西根據我發現這裏的代碼:DragView Example
它是基於谷歌的啓動代碼。爲了保持屏幕上的視圖,我修改了onTouchEvent方法以保持屏幕上的視圖。
public boolean onTouchEvent(MotionEvent ev) {
if (!mDragging) {
return false;
}
final int action = ev.getAction();
final int screenX = clamp((int)ev.getRawX(), 0, mDisplayMetrics.widthPixels);
final int screenY = clamp((int)ev.getRawY(), 0, mDisplayMetrics.heightPixels);
//**ADDED to keep view entirely on screen
final int[] parentpos = {-1,-1};
((View) mDragSource).getLocationOnScreen(parentpos);
int minScreenX = parentpos[0] + (int)mTouchOffsetX;
int minScreenY = parentpos[1] + (int)mTouchOffsetY;
int maxScreenX = minScreenX + ((View) mDragSource).getWidth() - mDragView.getWidth();
int maxScreenY = minScreenY + ((View) mDragSource).getHeight() - mDragView.getHeight();
//end ADDED
這裏
case MotionEvent.ACTION_MOVE:
// Update the drag view. Don't use the clamped pos here so the dragging looks
// like it goes off screen a little, intead of bumping up against the edge.
// **CHANGED to keep view entirely on screen
mDragView.move(clamp(screenX,minScreenX,maxScreenX),
clamp(screenY,minScreenY,maxScreenY));
// end CHANGED
這裏
case MotionEvent.ACTION_UP:
if (mDragging) {
// **CHANGED to keep view entirely on screen
drop(clamp(screenX,minScreenX,maxScreenX),
clamp(screenY,minScreenY,maxScreenY));
//end CHANGED
}
endDrag();
1
如果你想在頁面中顯示的圖像,使用下面的代碼:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="2px"
android:src="pathOfImage" />
</LinearLayout>
,或者你可以使用下面的代碼設置高度和寬度:
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
ImageView imageView=(ImageView) findViewById(R.id.image);
imageView.setLayoutParams(new LayoutParams(width, height));
相關問題
- 1. 如何在android中設置圓形圖像邊界的顏色?
- 2. 如何設置邊界? android java
- 3. 如何在Android中爲Layout(RelativeLayout)設置圖片邊框?
- 4. 如何在pygame中設置邊界?
- 5. 在android中如何在ExpandableListView中設置指標邊界?
- 6. 設置地圖邊界
- 7. 設置視圖邊界
- 8. 在Javascript中設置圖片的邊距
- 9. 如何在MVC應用程序中設置Kendo地圖邊界?
- 10. 如何在C++中爲vtk設置三維地圖邊界?
- 11. 如何在3d餅圖高圖上設置邊界?
- 12. Android Studio - 無邊界圖片資產
- 13. 何處在自定義視圖中設置繪圖的邊界
- 14. 設置SVG邊界
- 15. 如何在Android中設置邊框和旋轉位圖圖像?
- 16. 如何設置此範圍邊界?
- 17. 如何設置城市邊界?
- 18. 如何設置actionSheet imageView的邊界?
- 19. 如何設置邊界半徑IE8
- 20. 在閃存中設置邊界
- 21. 在OpenGLes 1.1中設置邊界形狀?
- 22. 在jquery中爲.animate設置邊界
- 23. 在Python中設置數組邊界
- 24. 在Forge Viewer中設置可見邊界
- 25. 在SQL中設置範圍邊界
- 26. 如何爲Android設置背景圖片?
- 27. 設置邊界的視圖xcode
- 28. 如何在android中爲achartengine折線圖設置背景圖片?
- 29. 如何在Matlab中可視化圖像片段邊界?
- 30. 我可以同時設置邊界左邊界和右邊界邊界嗎?
你使用的是什麼版本? – gobernador 2012-04-12 04:59:58
你應該接受這些答案之一。 – cstrutton 2012-05-20 01:03:18