相关疑难解决方法(0)

MotionEvent.getRawX和MotionEvent.getX之间的区别

我想知道MotionEvent.getRawXMotionEvent.getXandroid 之间的区别,因为一个是数字,另一个是浮动?是否需要同时拥有这两种类型?

android android-ui android-layout

63
推荐指数
2
解决办法
3万
查看次数

Android - 可移动/可拖动浮动操作按钮(FAB)

我在我的应用程序中使用FloatingActionButton.偶尔,它会重叠基本内容,所以我想这样做,这样用户就可以将FAB拖出去了.

本身不需要拖放功能.它只需要是可移动的.文档没有提到这一点,但我确信我在其他应用程序中看到过这样的功能.

你有没有人建议/提供如何做的代码片段(最好是XML).

android floating-action-button

18
推荐指数
3
解决办法
2万
查看次数

Android移动视图触摸事件

我想在我的布局中移动两个不同的视图,以便用户可以像他的愿望一样显示它.

到目前为止,我已经制作了以下代码来处理触摸事件:

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 …

android touch ontouchlistener

12
推荐指数
1
解决办法
4万
查看次数

Android ListView向左和向左滑动以接受和拒绝

我想开发一个列表视图,当从左向右滑动时 - 在左角显示一个accept(true)图标(不可点击 - 从左向右滑动时只显示颜色变化),如下面的屏幕截图:

在此输入图像描述

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

在此输入图像描述

这是在iOS中完成的,但我无法在Android中找到如何执行此操作,我尝试使用Google搜索,但无法找到我想要的内容.

我尝试了以下示例:http://www.tutecentral.com/android-swipe-listview/

但是在那个例子中,当我从左向右和从右向左滑动时,会调用相同的onOpened(..)方法,因此知道何时调用accept以及何时调用reject API会让人感到困惑,因为在任何类型上调用相同的方法刷卡.

并且我还希望接受(在左侧)和拒绝(在右侧)图像仅在我向左或向右滑动时显示,但是当我拿起手指时它们必须消失并且应该显示整个ListView (绝不要同时显示两个侧面图像).

所以任何人请帮助我了解如何做到这一点.

我的问题有些令人困惑,但我不知道如何解释整个动画,所以我试着像上面那样解释.

如果有人能帮助我,我将非常感激.

android listview swipe

11
推荐指数
2
解决办法
5万
查看次数

Android:是否可以将两个surfaceview相互叠加?

我的想法是有两个surfaceViews.一个surfaceView将保存一个图像(比如ImageSurgaceView),第二个表面位于第一个保存注释(比如AnnotationSurfaceView)的顶部,如圆形,矩形等.现在我必须映射这些表面视图,使其高度,宽度是相同的,而且,表面视图应该在拖动时移动,即共享触摸事件.确切地说,当我向上移动图像时,注释也应该向上移动.

现在,我不确定这是否可能在Android中.任何人都可以告诉或分享这方面的一些信息.我没有任何实现想法,因此我没有任何具体的代码.而且,我找不到类似的东西.

谢谢你的帮助.

android surfaceview

10
推荐指数
1
解决办法
6579
查看次数

如何在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)

android drag android-layout

5
推荐指数
1
解决办法
3709
查看次数

刷新时,Android自定义视图会移回原始位置

我正在实现一个时间选择器,如下所示:

未完成的时间选择器

那个黄色的块是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

5
推荐指数
1
解决办法
959
查看次数