編輯:關於Android編程
我們為view添加onTouch事件,獲取移動過程中,手指相對屏幕的位置信息:[code]
@Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: moveViewWithFinger(view, event.getRawX(), event.getRawY()); break; case MotionEvent.ACTION_UP: break; } return true; }
/** * 設置View的布局屬性,使得view隨著手指移動 注意:view所在的布局必須使用RelativeLayout 而且不得設置居中等樣式 * * @param view * @param rawX * @param rawY */ private void moveViewWithFinger(View view, float rawX, float rawY) { RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view .getLayoutParams(); params.leftMargin = (int) rawX - ivMove.getWidth() / 2; params.topMargin = (int) rawY - topTitleHeight - ivMove.getHeight() / 2; view.setLayoutParams(params); }
/** * 通過layout方法,移動view * 優點:對view所在的布局,要求不苛刻,不要是RelativeLayout,而且可以修改view的大小 * * @param view * @param rawX * @param rawY */ private void moveViewByLayout(View view, int rawX, int rawY) { int left = rawX - ivMove.getWidth() / 2; int top = rawY - topTitleHeight - ivMove.getHeight() / 2; int width = left + view.getWidth(); int height = top + view.getHeight(); view.layout(left, top, width, height); }
-------------------------------------------------------------------
更多交流,Android開發聯盟QQ群:272209595
目錄一、安裝JDK.. 11、JDK下載... 12、安裝JDK.. 13、環境變量設置... 3二、安裝Eclipse. 51、Eclipse下載... 52、Ecli
前言因為最近想和後台進行對接,昨天自己在Google上研究了半天關於Volley的內容,覺得很開心。因為原來覺得關於網絡這塊,一直是個很復雜的東西和流程,沒想到Googl
繼承viewGroup; 自定義控件的左邊距;右邊距;上邊距,下邊距; java 代碼; package com.example.customview1406_04m
上一篇博文說到了Shader的五個子類 - BitmapShader - LinearGradient - RadialGradient - SweepGradient