使用TwoWayView在Android中滚动水平视图时更改图像按钮状态

时间:2015-02-13 09:52:57

标签: android horizontal-scrolling onscroll

注意:任何人,不知道怎么做?

TwoWayView库在图像按钮上水平显示图像,显示所有图像 成功地

我的问题:

当我使用TwoWayView scoll horizo​​ntalview时,只改变imagebutton background

(like when load 
ui then imagebutton background will be display colored and onscolling time then all
imagebutton background will be grayscale and after stop scolling then again imagebutton
background will be initail phase ie colored)

某一秒。

这里,anohter问题是如何使用GPUImage进行灰度变化并恢复为彩色。 我在IOS上成功转换但无法使用此安卓。

我正在尝试使用programmtically设置imagebutton状态,因为我不知道图像 因为它来自服务器sothat。

    StateListDrawable stateList = new StateListDrawable();
    stateList.addState(new int[] { android.R.attr.state_focused}, dataImage.get(1));
    stateList.addState(new int[] {},  dataImage.get(0));
    holder.imageButton.setBackgroundDrawable(stateList);

使用自定义适配器,以下是FUllCode: http://pastebin.com/c1v0WAYA

现在,回到MainActivity,我做了什么:

完整代码 - MainActivity: http://pastebin.com/MHERB89j 我已经宣布了TwoWayView和实现

String stateName;
      mListView = new TwoWayView(getApplicationContext());
        mListView.setItemMargin(10);
        mListView.setLongClickable(true);
        mListView.setOrientation(Orientation.HORIZONTAL);


        mListView.setHorizontalScrollBarEnabled(true);
        mListView.setVerticalScrollBarEnabled(false);

         mListView.setOnScrollListener(new TwoWayView.OnScrollListener() {
            private boolean scrolling=false;

            @Override
            public void onScrollStateChanged(TwoWayView view, int scrollState) {
                stateName = "Undefined";
                switch(scrollState) {
                case SCROLL_STATE_IDLE:
                    stateName = "Idle";
                    break;

                case SCROLL_STATE_TOUCH_SCROLL:
                    stateName = "Dragging";
                    break;

                case SCROLL_STATE_FLING:
                    stateName = "Flinging";
                    break;
                }


            }

            @Override
            public void onScroll(final TwoWayView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {
                int childcount = view.getChildCount();
                Log.e("STATE", "state Name="+stateName);
                if (stateName.equalsIgnoreCase("Flinging")) {
                     for (int i=0; i < childcount; i++){
                         view.getChildAt(i).setSelected(true);
                     }
                }else if (stateName.equalsIgnoreCase("Idle")) {
                 for (int i=0; i < childcount; i++){
                     view.getChildAt(i).setSelected(false);
                    }
                }else {
                    for (int i=0; i < childcount; i++){
                     view.getChildAt(i).setSelected(false);
                    }
                }

            }
        });

我的意图是更改图像着色这里我的示例只是在初始状态和状态下更改图像 dataImage.get(0) 投掷状态时的 dataImage.get(1)图像背景。

输出:当掠夺右侧图像消失时和从右到左时,没有任何效果。

0 个答案:

没有答案