android - 如何在 Android 中拖动图库中的图像时避免选择器

标签 android gallery selector

我在图库中显示了一系列图像。当用户单击其中一个时,他们会被带到不同的 View 。 我想在用户执行点击时、 View 更改之前向他们提供一些反馈。

我这样定义了一个选择器:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/pic_frame_pressed" />
    <item android:drawable="@drawable/pic_frame" /> <!-- default -->
</selector>

这有效。当用户单击图库中的图像时,会显示一个框架...

但是,当用户使用图像前后拖动图库时也会显示它。

我查看了可以找到的选择器的不同状态:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:color="hex_color"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
</selector>

我尝试了它们,但找不到仅在用户单击图像时触发的组合(例如,“选定”始终针对位于图库中心的图像触发)

我需要一种“state_clicked”...

最佳答案

我这里也面临着同样的情况
我找到的唯一解决方案是自己在 OnItemClick 事件上处理后台切换(这并不优雅:/):

            mGallery.setOnItemClickListener(new OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> parent, View clickedView, int position, long id) {
                for(int i = 0; i < parent.getChildCount(); i++){
                    parent.getChildAt(i).setBackgroundResource(R.drawable.bg_menu);
                    ((TextView) parent.getChildAt(i)).setTextColor(getResources().getColor(R.color.white));
                }
                clickedView.setBackgroundResource(R.drawable.bg_menu_selected);
                ((TextView) clickedView).setTextColor(getResources().getColor(R.color.dark_blue));
                ((SectionAdapter) mGallery.getAdapter()).setSelected(position);
            }
        });

如您所见,我将选定的位置存储在适配器上,以便在重绘时以正确的布局显示项目(失去焦点)
我真的很想找到另一个解决方案,但我还没有

如果有人得到它,我会很高兴听到:D

关于android - 如何在 Android 中拖动图库中的图像时避免选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6580374/

相关文章:

android - 使用安卓布局

android - 如何从内部存储中选择图像并将其插入到 SQLite 中?

ios - 如何实现可垂直和水平滚动的照片库

android - 我想在 android 中使用带有形状的选择器项选择一个按钮

javascript - querySelector 方法已过时?

android - map 标记图标动画(Google Maps API V2 for Android)

适用于大屏幕的 android 可绘制文件夹

Android - 相机闪光灯在不同设备上以错误的间隔闪烁

android - 如何自定义图库的外观?

javascript - jQuery 选择器 - 选中并且类开始于