gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 08:14:02 25 4
gpt4 key购买 nike

我在画廊中展示了一系列图片。当用户单击其中一个时,他们将被带到不同的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com