參考文章:(講解更詳細)
首先貼上效果圖:(載入動畫轉動快是在模擬器的原因,真機並沒有那麼快)
思路:
自定義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...