我想知道MotionEvent.getRawX和MotionEvent.getXandroid 之间的区别,因为一个是数字,另一个是浮动?是否需要同时拥有这两种类型?
我在我的应用程序中使用FloatingActionButton.偶尔,它会重叠基本内容,所以我想这样做,这样用户就可以将FAB拖出去了.
本身不需要拖放功能.它只需要是可移动的.文档没有提到这一点,但我确信我在其他应用程序中看到过这样的功能.
你有没有人建议/提供如何做的代码片段(最好是XML).
我想在我的布局中移动两个不同的视图,以便用户可以像他的愿望一样显示它.
到目前为止,我已经制作了以下代码来处理触摸事件:
this.viewEvent.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent event)
{
final int y = (int) event.getRawY();
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view.getLayoutParams();
switch (event.getAction() & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_DOWN:
element.setEventY(y - params.topMargin);
break;
case MotionEvent.ACTION_UP:
viewGroup.invalidate();
break;
case MotionEvent.ACTION_POINTER_DOWN:
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
params.topMargin = y - element.getEventY();
params.bottomMargin = screenHeight - view.getHeight() - params.topMargin;
// Avoid out of screen
if (params.topMargin < 0) return true;
// Apply changes
view.setLayoutParams(params);
break;
}
return true;
}
});
Run Code Online (Sandbox Code Playgroud)
element …
我想开发一个列表视图,当从左向右滑动时 - 在左角显示一个accept(true)图标(不可点击 - 从左向右滑动时只显示颜色变化),如下面的屏幕截图:

当我从左向右滑动时,它将接受(调用'accept'API),当我从右向左滑动时,它将显示如下内容:

这是在iOS中完成的,但我无法在Android中找到如何执行此操作,我尝试使用Google搜索,但无法找到我想要的内容.
我尝试了以下示例:http://www.tutecentral.com/android-swipe-listview/
但是在那个例子中,当我从左向右和从右向左滑动时,会调用相同的onOpened(..)方法,因此知道何时调用accept以及何时调用reject API会让人感到困惑,因为在任何类型上调用相同的方法刷卡.
并且我还希望接受(在左侧)和拒绝(在右侧)图像仅在我向左或向右滑动时显示,但是当我拿起手指时它们必须消失并且应该显示整个ListView (绝不要同时显示两个侧面图像).
所以任何人请帮助我了解如何做到这一点.
我的问题有些令人困惑,但我不知道如何解释整个动画,所以我试着像上面那样解释.
如果有人能帮助我,我将非常感激.
我的想法是有两个surfaceViews.一个surfaceView将保存一个图像(比如ImageSurgaceView),第二个表面位于第一个保存注释(比如AnnotationSurfaceView)的顶部,如圆形,矩形等.现在我必须映射这些表面视图,使其高度,宽度是相同的,而且,表面视图应该在拖动时移动,即共享触摸事件.确切地说,当我向上移动图像时,注释也应该向上移动.
现在,我不确定这是否可能在Android中.任何人都可以告诉或分享这方面的一些信息.我没有任何实现想法,因此我没有任何具体的代码.而且,我找不到类似的东西.
谢谢你的帮助.
我正在制作一个Android应用程序.我有一个场景.首先看下面的屏幕截图,所以任何人来这里回答都有一些清晰的画面,我想要的.
场景:活动在导航栏下面有一个地图,在中心有一个RelativeLayout(红色背景),在Red RelativeLayout下有一个ListView
我想要的是:我想拖动或重新定位(无论其他人使用什么术语)Red RelativeLayout通过我的手指按住它并在屏幕上上下移动以及下面的listview也应该随着这个布局移动
我试过的代码:
xml布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/fifty_five_dp"
android:id="@+id/topBar"
android:background="@color/bg_color" >
<Button
android:id="@+id/button_menu"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="4dp"
android:background="@drawable/list_btn"
android:onClick="toggleMenu" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Watchover"
android:textColor="@android:color/white"
android:textSize="@dimen/eighteen_sp"
android:textStyle="bold" />
</RelativeLayout>
<!-- This is where fragment will show up -->
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/topBar"
android:id="@+id/root"
android:background="@android:color/white" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" >
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/greenBarImage" />
<RelativeLayout
android:id="@+id/redLayout"
android:layout_width="match_parent"
android:layout_height="@dimen/forty_dp"
android:layout_centerVertical="true"
android:background="@color/btn_color" >
<TextView …Run Code Online (Sandbox Code Playgroud) 我正在实现一个时间选择器,如下所示:
那个黄色的块是MyCustomView.移动时MyCustomView,我应该计算新的日期和设置tvDate.
部分布局文件:
<LinearLayout
android:orientation="vertical">
<TextView android:id="@+id/tv_date">
<RelativeLayout
android:id="@+id/rl">
<MyCustomView
android:layout_centerInParent="true"/>
<OtherViews/>
</RelativeLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
码:
class MyCustomView extends View{
// move listener
public interface IMoveCallback{
void update(int index);
}
private IMoveCallback listener = null;
// set listener
public void setMoveCallback(IMoveCallback callback){
this.listener = callback;
}
@Override
protected void onDraw(Canvas c){
super.onDraw(c);
// draw yellow block and four arrows here.
}
@Override
public boolean onTouch(View v, MotionEvent event) {
processDrag(v, event);
invalidate();
return false;
} …Run Code Online (Sandbox Code Playgroud) java android android-custom-view android-layout android-studio