Android 台灣中文網

標題: android 覆蓋重疊 [打印本頁]

作者: deenya    時間: 2013-5-7 20:05
標題: android 覆蓋重疊
我有兩個imageview
例如A和B,當A做touchMove行為時,我想要把A覆蓋到B上面,請問要怎去做
附上代碼
ima = (ImageView) findViewById(R.id.imageView1);
                ima.setOnTouchListener(new View.OnTouchListener() {

                        public boolean onTouch(View v, MotionEvent event) {
                                // TODO Auto-generated method stub
                               
                                switch (event.getAction() & MotionEvent.ACTION_MASK) {
                                case MotionEvent.ACTION_DOWN:
                                        mode = MODE_DRAG;
                                        currentMatrix.set(ima.getImageMatrix());
                                        startPoint.set(event.getX(), event.getY());
                                        break;

                                case MotionEvent.ACTION_MOVE:
                               
                                        if (mode == MODE_DRAG) {
                                                float dx = event.getX() - startPoint.x;
                                                float dy = event.getY() - startPoint.y;
                                                if(dx>100 || dy>100){
                                                        AbsoluteLayout.LayoutParams p = new  AbsoluteLayout.LayoutParams(AbsoluteLayout.LayoutParams.WRAP_CONTENT,  
                                                                        AbsoluteLayout.LayoutParams.WRAP_CONTENT,ima.getLeft() + (int)dx , (int) (ima.getTop()+dy));  
                                                          ima.setLayoutParams (p);         
                                                       
                                                }
                                
                                        }
                                        break;

                                case MotionEvent.ACTION_UP:
                                case MotionEvent.ACTION_POINTER_UP:
                                        mode = 0;
                                        break;
                                }
                               
                                return true;
                        }
                });

pictimage=(ImageView)findViewById(R.id.imageView8);
pictimage.setAlpha(100);


謝謝指導
作者: ploglin    時間: 2013-5-8 09:14
A在touchmove時,要覆蓋到B?
那是A跟B要一起動的意思嗎?
作者: deenya    時間: 2013-5-8 11:51
本帖最後由 deenya 於 2013-5-8 14:56 編輯

ploglin 發表於 2013-5-8 09:14
A在touchmove時,要覆蓋到B?
那是A跟B要一起動的意思嗎?


是A在touchmove時,要覆蓋到B
作者: ploglin    時間: 2013-5-8 12:21
那應該是在 layout 的地方可以去控制,後蓋前。
放在越後面的 layout 會在越上層,所以如果你要 A 蓋 B 的話,應該要先放 B 再放 A
作者: clotai    時間: 2013-5-8 14:22
可以再說清楚一下你的需求嗎 ?
以下是我認知 :
1. A 和 B 沒重疊,
2. 當 A 移動時, A 會覆蓋到 B 且在 B 上層?

這是你的意思 ?
作者: deenya    時間: 2013-5-8 14:56
clotai 發表於 2013-5-8 14:22
可以再說清楚一下你的需求嗎 ?
以下是我認知 :
1. A 和 B 沒重疊,

我的意思就是第2各得
2. 當 A 移動時, A 會覆蓋到 B 且在 B 上層

作者: clotai    時間: 2013-5-8 16:08
你一開始 A 和 B 有重疊到 ?
作者: deenya    時間: 2013-5-8 16:14
clotai 發表於 2013-5-8 16:08
你一開始 A 和 B 有重疊到 ?

沒有
A會被B蓋住
作者: clotai    時間: 2013-5-8 18:57
deenya 發表於 2013-5-8 16:14
沒有
A會被B蓋住

所以 A 全部都被 B 蓋住?
那你就 B 不處理 touch event, 當 A 處理時把 B setVisible(View.GONE),
這樣有符何要求?
有沒示意圖?你的應用是什麼 ?

作者: deenya    時間: 2013-5-8 19:24
clotai 發表於 2013-5-8 18:57
所以 A 全部都被 B 蓋住?
那你就 B 不處理 touch event, 當 A 處理時把 B setVisible(View.GONE),
這樣 ...

我的應用是七巧板
七巧板有7各圖,然後會移到框框裡面
像這樣的
作者: clotai    時間: 2013-5-8 19:50
deenya 發表於 2013-5-8 19:24
我的應用是七巧板
七巧板有7各圖,然後會移到框框裡面
像這樣的

如果是這樣的話, 你 B 應該一開始就在下面吧.
你 Layout 就應該是 B 先擺上去, 再把 A 擺上去
這樣你只要對 A  作操作就好, 為什麼要先 B 蓋住 A ?

作者: ploglin    時間: 2013-5-9 09:06
我覺得,你應該是A跟B不動,當A被touchmove的時候,把A先設成View.GONE
然後生出一個C來,取代A的移動,所以移動是移動C,因為C是動態產生的,理論上他會覆蓋在B之上。
當touchmove結束時,再去處理互換的動作。
作者: deenya    時間: 2013-5-13 15:38
謝謝,已解決
謝謝各位幫忙




歡迎光臨 Android 台灣中文網 (https://apk.tw/) Powered by Discuz! X3.1