【问题标题】:how to align one image to another after sliding with a finger?用手指滑动后如何将一张图像与另一张图像对齐?
【发布时间】:2013-07-09 16:57:24
【问题描述】:

我有一个activity.xml

用户可以用手指左右移动这些框(按钮)。

但是白色的小箭头没有到达盒子的中间

(有时太右,有时太左)

我已尝试在其左侧添加/删除边距。

但这并没有帮助。

我应该在哪里环顾四周?

 <com.w.navigate.SearchButtonsBarHorizontalScrollView
        android:id="@+id/searchButtonBar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:background="@drawable/engines_bg"
        android:fadingEdge="horizontal"
        android:gravity="center"
        android:padding="0dp"
        android:scrollbars="none" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:paddingTop="25dp" >

            <ImageButton
                android:id="@+id/leftMargin"
                android:layout_width="110dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:visibility="invisible" />

            <ImageButton
                android:id="@+id/searchButton1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/searchButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/searchButton3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/searchButton4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />
        </LinearLayout>
    </com.w.navigate.SearchButtonsBarHorizontalScrollView>

也许修复应该在代码中:

public boolean onTouchEvent(MotionEvent event) {
    super.onTouchEvent(event);
    Log.d("w","ontouchevent");      
    if (event.getAction()==MotionEvent.ACTION_UP) {
        Log.d("WAZE","action up");
        Integer min_dist=null;
        SearchEngine min_se=null;
        @SuppressWarnings("unchecked")
        Map<Object, SearchEngine> engines=(Map<Object, SearchEngine>)getTag(R.id.searchEngines);
        Iterator<SearchEngine> i=engines.values().iterator();
        while (i.hasNext()) {
            SearchEngine tmp_se=(SearchEngine)i.next();
            int tmp_dist=Math.abs(tmp_se.getButton().getButtonXPosition()-getScrollX()-getWidth()/2);
            if (min_dist==null || tmp_dist<min_dist) {
                min_dist=tmp_dist;
                min_se=tmp_se;
            }
        }
        ((SearchActivity)getTag(R.id.searchActivity)).setActiveEngine(min_se);
    }
    return true;

}

【问题讨论】:

  • 我真的无法理解你的问题。
  • 抱歉,图片丢失
  • 所以据我了解,您希望三角形以白框为中心?
  • 是的,但不仅仅是在开始时。而且当我交换手指并且按钮向左\向右移动时
  • 向我们展示一些代码,你是如何做到的。

标签: android xml user-interface uigesturerecognizer


【解决方案1】:

我认为您的问题来自:

android:layout_alignParentBottom="true"

这样,您的箭头与您的父级(按钮)对齐。我在 android developerpers 上进行了搜索,发现了一个对您非常有用的 xml 属性:

android:layout_centerHorizontal="true"

在 Android 开发者中,这里是描述:

如果为 true,则在其父级中水平居中该子级。

希望它会起作用;我是 StackOverflow 的新手,可能我的答案格式不正确。

【讨论】:

  • 不。它使底部栏位于我的屏幕顶部。顺便说一句,在用户用手指交换按钮后,我希望三角形位于中心,而不是在静态初始位置
【解决方案2】:

如果我没记错的话,请看一下指向箭头的位置 - 它只是不在屏幕的水平中间。实际上,您在滚动视图中所做的一切都是正确的。

从应用程序中截取真实屏幕截图进行测试。

【讨论】:

猜你喜欢
  • 2020-04-30
  • 1970-01-01
  • 1970-01-01
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 2016-11-23
  • 2019-04-22
  • 2013-09-04
相关资源
最近更新 更多