android 自定義好看的按鈕 (Kotlin)

2021-09-25 17:46:46 字數 4115 閱讀 4900

參考文章:(講解更詳細)

首先貼上效果圖:(載入動畫轉動快是在模擬器的原因,真機並沒有那麼快)

思路:

自定義button的原始碼:

參考:view座標系:

/** * 設定按鈕的初始樣式

*/private fun initview()

/** * 開始按鈕變成圓形的動畫

*/open fun mbtnainim()

})mvalueanimator.duration =

500//設定動畫時長500毫秒

mvalueanimator.

start()

mvalueanimator.

addlistener

(object :

animatorlisteneradapter()

})}/**

* 開始圓弧旋轉的動畫

*/private fun drawarc()

})mvalueanimator2!

!.repeatcount = valueanimator.infinite // 設定動畫無限重複

mvalueanimator2!

!.duration =

500 mvalueanimator2!!.

start()

}/**

* 結束動畫

*/open fun endanim

(btntext:string)})

mvalueanimator.duration =

500 mvalueanimator.

start()

mvalueanimator.

addlistener

(object :

animatorlisteneradapter()

})mvalueanimator2!!.

end(

)//停止圓弧旋轉

isdraw =

false

// 不畫弧

invalidate()

//重繪介面

}@suppresslint

("drawallocation"

) override fun ondraw

(canvas: canvas?)}

}布局**:

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

xmlns:android

=""=""

xmlns:tools

=""android:layout_width

="match_parent"

android:layout_height

="match_parent"

tools:context

="com.example.administrator.mktproject.mainactivity"

>

android:id

="@+id/et"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:layout_above

="@+id/btn"

android:layout_centerinparent

="true"

android:layout_marginbottom

="30dp"

android:background

="@drawable/et"

android:ems

="10"

android:hint

="你是不是個弟弟!"

android:paddingbottom

="8dp"

android:paddingstart

="5dp"

android:paddingtop

="8dp"

/>

android:id

="@+id/btn"

android:layout_width

="200dp"

android:layout_height

="wrap_content"

android:layout_centerinparent

="true"

android:layout_marginbottom

="50dp"

android:textcolor

="#fff"

android:text

="想好再按!"

android:textsize

="16sp"

/>

relativelayout

>

activity**:

package com.example.administrator.mktproject

import android.os.build

import android.os.bundle

import android.os.looper

import android.os.systemclock

import android.support.annotation.requiresapi

import android.widget.toast

import kotlinx.android.synthetic.main.activity_main.*

class

mainactivity:(

))}else)}

looper.

loop()

}).start()}}}

Android 自定義按鈕

將按鈕的背景顏色設定成drawable檔案即可。雖然這裡講的是button,但是textview及其子元件也可以如法炮製 主布局檔案如下 下面三個檔案都放在drawable hdpi資料夾下,第乙個是my button selector.xml,定義了按鈕的不同狀態 my button presse...

Android自定義返回按鈕

在網上找了很多關於呼叫系統返回的按鈕,但都不成功,總是報空指標。如下 onkeydown keyevent.keycode back,null 說加上這麼一句話就可以呼叫,但總是報空指標,不知道為什麼,有知道的嗎?後來上網上又找到了另一種方法實現,就是用activity的跳轉形式來實現,因為acti...

Android自定義返回按鈕

在網上找了很多關於呼叫系統返回的按鈕,但都不成功,總是報空指標。如下 onkeydown keyevent.keycode back,null 說加上這麼一句話就可以呼叫,但總是報空指標,不知道為什麼,有知道的嗎?後來上網上又找到了另一種方法實現,就是用activity的跳轉形式來實現,因為acti...