1. 程式人生 > >不用selector實現button的簡單點選效果

不用selector實現button的簡單點選效果

一般我們給button或者imageview設定點選效果時,會使用一個xml的選擇器selector。但是整個應用下來會建立很多個xml,甚至很多圖片。
一般我們要得點選效果只是讓透明度有些變化而已,那麼針對透明度變化自定義一個元件。

public class AutoBgButton extends Button {

    public AutoBgButton(Context context) {
        super(context);
    }

    public AutoBgButton(Context context, AttributeSet attrs) {
        super
(context, attrs); } public AutoBgButton(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public void setBackground(Drawable d) { // Replace the original background drawable (e.g. image) with a // LayerDrawable that
// contains the original drawable. SAutoBgButtonBackgroundDrawable layer = new SAutoBgButtonBackgroundDrawable(d); super.setBackground(layer); } protected class SAutoBgButtonBackgroundDrawable extends LayerDrawable { // The color filter to apply when the button is pressed
protected ColorFilter _pressedFilter = new LightingColorFilter(Color.LTGRAY, 1); // Alpha value when the button is disabled protected int _disabledAlpha = 200; public SAutoBgButtonBackgroundDrawable(Drawable d) { super(new Drawable[]{d}); } @Override protected boolean onStateChange(int[] states) { boolean enabled = false; boolean pressed = false; for (int state : states) { if (state == android.R.attr.state_enabled) enabled = true; else if (state == android.R.attr.state_pressed) pressed = true; } mutate(); if (enabled && pressed) { setColorFilter(_pressedFilter); } else if (!enabled) { setColorFilter(null); setAlpha(_disabledAlpha); } else { setColorFilter(null); } invalidateSelf(); return super.onStateChange(states); } @Override public boolean isStateful() { return true; } } }

相關推薦

Android linearlayout實現button效果

有的時候,我們希望LinearLayout佈局也有點選的效果,這時候我們不僅需要一個作為背景的selector,還要設定一些其它屬性才行:android:clickable="true"android

不用selector實現button簡單效果

一般我們給button或者imageview設定點選效果時,會使用一個xml的選擇器selector。但是整個應用下來會建立很多個xml,甚至很多圖片。 一般我們要得點選效果只是讓透明度有些變化而已,那麼針對透明度變化自定義一個元件。 public cl

android 在selector中同時設定button的圓角和效果簡單顏色無需美工

1,如果我們沒有美工來設計我們的圓角圖片,可以採用shape的方式實現: <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.andr

textview中點效果實現,比如textview中實現圖片和文字的顏色變化(類似於button

<TextView android:drawableTop="@drawable/bg_text_view" android:id="@+id/home_toolbar_settings" an

Android 文字和按鈕Button效果的(selector使用)直接用

不廢話,寫最實用的部落格。 以下是按鈕的selector使用 <selector xmlns:android="http://schemas.android.com/apk/res/an

iOS -- 通過runtime向Button方法裡傳遞引數實現效果

效果: 有三個button點選其中一個將其他兩個的選中狀態取消,相當於單選的效果: 由於三個不同是同一型別的按鈕,如果點選三個按鈕都呼叫一個方法將會避免我們的程式碼重複,提高工作效率。那麼要實現這樣的程式碼效果我們就必須在點選方法裡邊將另外兩個button的狀態改變,並且

android selector設定button效果(詳細)以及常見問題

button的點選效果學習起來事實上比較容易,此點對開發者來說也是使用的比較頻繁的一個知識點,與它相關的還有編輯框的獲取焦點時改變背景顏色、選擇button選擇時改變字型顏色等等。這些其實都是用到的drawable的seletor。 當然drawable中還有很多其他效果可

android:多次效果實現

public class MainActivity extends AppCompatActivity{ private final static int COUNTS = 5;//點選次數 private final static long VALIDTIME = 1300;/

Android MaterialDesign之水波效果的幾種實現方法

什麼是水波點選的效果? 下面是幾種不同的實現方法的效果圖以及實現方法   Video_2016-08-31_003846 如何實現? 方法一 使用

React---簡單實現表單提交插入、刪除操作

1 import React,{Component,Fragment} from 'react' 2 3 class App extends Component { 4 constructor(){ 5 super() // 要想使用this必須使用super 6 t

jq實現跟隨滑鼠移動的下劃線效果

效果如下: 1.html程式碼:   1 <div class="center-left-tap"> 2 <a href="javascript:void (0)" style="color: #1c1c1c;" class="current" oncli

Viewpager+Fragment實現滑動,滑動效果

佈局頁面 佈局有很多種方式,為了美觀,這裡我們就用RadioGroup實現 <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_widt

從原始碼分析 Android Button 效果

Android 點選效果 我們平時在開發過程中都可能注意到,我們寫的預設的 Button 都是有點選效果的,而且大小也有預設規定的,而 TextView 就沒有。就想下面的圖片一樣。 是有預設效果的。通過檢視 Button 的原始碼我們看到: 每個 b

Cocos Creator實戰-使用粒子資源實現螢幕效果

效果圖 涉及到的知識點 粒子特效製作 觸控事件監聽以及座標轉化 預製資源製作 物件池的使用 動態顯示特效 製作粒子特效 推薦免費線上工具Particle2dx,這裡就使用模板中已有的Click特效circle1 選擇粒子特效模板

Android中的Button自定義效果

原來聽很多人說Button不能使用自定義的點選或選中效果,所以做下測試 結果顯示Button很強大 完全可以使用這種靈活的方法  方法一 1.放在drawable下的selector.xml檔案 <?xml version="1.0" encoding="utf-8"?

css實現按鈕效果

在html中設定class: <button class="button1">click</button> css中如下所示: .button1{     position: relative; /** 相對佈局 **/ } .button1

Android中按鈕的水波紋效果實現

關於按鈕水波紋的點選效果,這個是我在http://blog.csdn.net/singwhatiwanna/article/details/42614953這篇文章讀到的。寫得真心不錯,我只是站在巨人的肩上而已。 我加了一些註釋,以至於我們更好的理解這篇不錯的文章 下面是主

iOS 去掉tableViewCell 效果 三個簡單方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{     // 1 鬆開手選中顏色消失       [tableView deselectR

android 簡單有點效果button

需求如下圖: 需求分析: 一、這裡button出現圓角,並且顏色漸變,需要自己實現特效。 二、這裡需要對按鈕背景和文字 在點選時做處理,需要用到selector。 需求實現: 其實android的圓角邊框是通過背景圖片來設定的.  那麼需要現在drawable

android 自定義水波紋效果Button

welcome 效果 ; 技術基礎思路 自定義 Button 自定義 Drawable 專案原始碼 自定義button 其實這只是一些說法 自定義button,我們只需要將子類繼承 button public class