⑴ android布局 按鈕不能 自由拖動
因為你的layout類型選了linearlayout或者gridlayout了對不對。。。
如果想要拖動,建議換成releativelayout
不要用拖動按鈕的方法去布局。正經的布局都是在xml里敲代碼的。拖動這個習慣該改改了。
⑵ Android開發,請問有類似這種可以拖動改變進度的框架嗎
csdn上搜最火的開源項目,直接拿來用,,,好多開源架構,封裝的也很不錯。
⑶ android關於拖動imageview
要拖動星星在onTouch事件裡面處理就行了啊
⑷ android startDrag() 和 OnDragListener 如何設置被拖動View的移動范圍
這個好像暫時都是靠技術的,目前還沒有這項設置。我查了一下,沒找到,或許有但是我不知道吧呵呵。
⑸ android 拖動imageview 如果沒有拖動到指定的位置 返回到起點怎麼實現
點擊imageview,加一個邊框,再點擊,取消邊框。拖動imageview,可以停在移動結束之後的位置上,而不是彈回移動之前的位置。
請問有什麼好的實現辦法。
public class MainActivity extends Activity {
private int screenWidth;
private int screenHeight;
private ImageView bgview;
private ImageView photoview;
private TextView txtview;
int top, right, bottom, left;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DisplayMetrics dm = getResources().getDisplayMetrics();
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels - 50;
bgview = (ImageView) findViewById(R.id.bgview);
photoview = (ImageView) findViewById(R.id.photoview);
photoview.setOnTouchListener(new TouchHandler());
photoview.setOnClickListener(new ClickHandler());
}
class TouchHandler implements OnTouchListener{
int lastX , lastY, dx, dy;
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
// if(mode == NONE)
// if(dx < 2 && dy < 2)
{
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
}
break;
case MotionEvent.ACTION_MOVE:
dx = (int) event.getRawX() - lastX;
dy = (int) event.getRawY() - lastY;
// if(mode == DRAG)
{
// photoview.setBackgroundResource(R.drawable.img_border);
left = v.getLeft() + dx;
top = v.getTop() + dy;
right = v.getRight() + dx;
bottom = v.getBottom() + dy;
if(left < 0)
{
left = 0;
right = left + v.getWidth();
}
if(right > screenWidth)
{
right = screenWidth;
left = right - v.getWidth();
}
if(top < 0)
{
top = 0;
bottom = top + v.getHeight();
}
if(bottom > screenHeight)
{
bottom = screenHeight;
top = bottom - v.getHeight();
}
v.layout(left, top, right, bottom);
lastX = (int) event.getRawX();
lastY = (int) event.getRawY();
}
break;
case MotionEvent.ACTION_UP:
break;
}
if(dx < 2 && dy < 2)
{
return false;
}
return true;
}
}
class ClickHandler implements OnClickListener{
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.photoview:
if( null == photoview.getBackground())
{
photoview.setBackgroundResource(R.drawable.img_border);
}else{
photoview.setBackgroundDrawable(null);
}
break;
}
v.layout(left, top, right, bottom);
System.out.println("left===" + left);
System.out.println("top===" + top);
}
}
}
⑹ 如何將Android開發程序中三個可以拖動的按鈕分別拖動到三個空中
android官網上的guides有Drag And Drop
⑺ android 里怎麼隨意拖動按鈕
可參考如下代碼即可:
java"><LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
⑻ android拖動照片來回移動怎麼實現
監聽touch事件,action_move裡面寫 更改圖片位置為手指位置就行了
⑼ android裡面有沒有可以上下左右流暢拖動的控制項
lz的問題可以用一張圖片來解決,就像地圖應用一樣,有個開源項目,photoview,github上自己找一下。
⑽ android拖動控制項的界面怎麼沒了
1. 使用控制項的layout 方法。
可以改任意位置和大小,不受布局限制。 但是在使用 setText等方法之後,會導致 界面重新布局,控制項會回到原來位置
[java] view plainprint?
01.btnMove.layout(left, top, left + 80, top+50);
btnMove.layout(left, top, left + 80, top+50);
2. 使用控制項的setLayoutParams 方法,改變布局參數。
很容易改大小,設置Height 和 Width 即可
改位置會受到布局限制。要改到任意位置的話,須將控制項放置在 FrameLayout 中,並設置 android:layout_gravity="top"
[java] view plainprint?
01.int left = btnMoveLayoutB.getLeft() + 50;
02.int top = btnMoveLayoutB.getTop() + 120;
03.
04.FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)btnMoveLayoutB.getLayoutParams();
05.params.setMargins(left, top, 3, 3);//改變位置
06.btnMoveLayoutB.setLayoutParams(params);