點選效果實現的多種方法

2021-07-11 23:01:42 字數 1717 閱讀 9148

解決方案:經典的解決方案,一種是使用xml,一種是寫在**裡。

1.使用選擇器selector

eg:<?xml version="1.0" encoding="utf-8"?>

" >

引用:android:backgroud="@drawable/button_selector"

2.如果在**中設定

可以根據ontouch的down事件和up事件來設定對應的

eg:@override

public boolean ontouch(view v, motionevent event) else if (event.getaction() == motionevent.action_up)

return false;

}3.使用濾鏡

eg:@override

public boolean ontouch(view v, motionevent event) else if (event.getaction() == motionevent.action_up)

return false;

}注:porterduff類

porterduff:

從上面我們可以看到porterduff.mode為列舉類,一共有16個列舉值:

1.porterduff.mode.clear 

所繪製不會提交到畫布上。

2.porterduff.mode.src

顯示上層繪製

3.porterduff.mode.dst

顯示下層繪製

4.porterduff.mode.src_over

正常繪製顯示,上下層繪製疊蓋。

5.porterduff.mode.dst_over

上下層都顯示。下層居上顯示。

6.porterduff.mode.src_in

取兩層繪製交集。顯示上層。

7.porterduff.mode.dst_in

取兩層繪製交集。顯示下層。

8.porterduff.mode.src_out

取上層繪製非交集部分。

9.porterduff.mode.dst_out

取下層繪製非交集部分。

10.porterduff.mode.src_atop

取下層非交集部分與上層交集部分

11.porterduff.mode.dst_atop

取上層非交集部分與下層交集部分

12.porterduff.mode.xor

異或:去除兩圖層交集部分

13.porterduff.mode.darken

取兩圖層全部區域,交集部分顏色加深

14.porterduff.mode.lighten

取兩圖層全部,點亮交集部分顏色

15.porterduff.mode.multiply

取兩圖層交集部分疊加後顏色

16.porterduff.mode.screen

取兩圖層全部區域,交集部分變為透明色

4.介紹另一種方法,使imagebutton有按下的特效,只需要準備一張普通的,不需要按下效果的。

直接看示例**,

①建立 touchlight 和 touchdark 這兩個 ontouchlistener,

②然後給 imagebutton 設定ontouchlistener就行了,

③如果使用touchlight,則按下效果是按鍵變亮;另乙個就是變暗。

多種方法實現素數的判斷

素數的定義 指整數在乙個大於1的自然數中,除了1和此整數自身外,沒法被其他自然數整除的數。換句話說,只有兩個正因數 1和自己 的自然數即為素數。我將給出幾種實現對自然數n進行素數的判斷方法,主要從 的執行效率上考慮這個問題。首先,根據素數的定義,大家都會想到的乙個方法就是遍歷2 n 1,如果n能被其...

用原生JS寫點選元素變色的多種方法

一組陣列元素,點選其中某乙個陣列元素,被點選的那個元素就會變色或者放大,也就是樣式有修改,這是我們經常用到的功能,我們經常實現這個功能用到的一般都是兩個迴圈,第乙個迴圈給每個元素繫結事件,第二個迴圈為所有元素樣式變成預設。var headcel document.getelementbyid hea...

hdu 5690 多種方法實現

太菜了 比賽的時候下面羅列的方法大致方向都想對了 但都差了一點 沒敢寫 不夠自信 第一種方法 找迴圈節法 注意迴圈節不一定就從第乙個開始 include include define ll int64 using namespace std int vis 10005 int num 10005 i...