All Projects → abdularis → Androidbuttonprogress

abdularis / Androidbuttonprogress

Licence: apache-2.0
Provides download button progress view for android

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Androidbuttonprogress

React Awesome Button
React button component. Awesome button is a 3D UI, progress, social and share enabled, animated at 60fps, light weight, performant, production ready react UI button component. 🖥️ 📱
Stars: ✭ 943 (+468.07%)
Mutual labels:  progress, button
Gradient Widgets
Flutter widgets wrapped with gradients
Stars: ✭ 290 (+74.7%)
Mutual labels:  progress, button
React Progress Button
🌀 Simple react.js component for an inline progress indicator
Stars: ✭ 516 (+210.84%)
Mutual labels:  progress, button
React Native Really Awesome Button
React Native button component. Awesome Button is a 3D at 60fps, progress enabled, social ready, extendable, production ready component that renders an awesome animated set of UI buttons. 📱
Stars: ✭ 988 (+495.18%)
Mutual labels:  progress, button
Progressbutton
Custom ProgressButton
Stars: ✭ 52 (-68.67%)
Mutual labels:  progress, button
Zwmusicdownloadview
精仿唱吧App音乐下载进度按钮,完美快速集成使用(A beautiful musical download progress button which can show the progress and click to play Music after finishing)
Stars: ✭ 88 (-46.99%)
Mutual labels:  progress, button
Vue Progress Button
Animated button for VueJS
Stars: ✭ 71 (-57.23%)
Mutual labels:  progress, button
Swift project
原OC项目用swift实现,纯swift项目,可作为学习swift的demo,包含多个自定义控件,并且进行封装网络请求库,结构清晰。
Stars: ✭ 133 (-19.88%)
Mutual labels:  progress, button
Tileprogressview
Simple Progress View with Tile Animation
Stars: ✭ 126 (-24.1%)
Mutual labels:  progress
Sharpview
安卓带有尖角气泡的控件(TextView,ImageView,EditText,Layout),支持渐变色,圆角等自定义属性
Stars: ✭ 137 (-17.47%)
Mutual labels:  button
Uicircularprogressring
A circular progress bar for iOS written in Swift
Stars: ✭ 1,658 (+898.8%)
Mutual labels:  progress
Vue Loaders
Vue + loaders.css
Stars: ✭ 127 (-23.49%)
Mutual labels:  progress
Radialprogressbar
Radial ProgressBar inspired by Apple Watch OS. It is highly Customisable
Stars: ✭ 141 (-15.06%)
Mutual labels:  progress
React Native Submit Button
Animated Submit button. Works on both android and ios.
Stars: ✭ 124 (-25.3%)
Mutual labels:  button
Vue Wait
Complex Loader and Progress Management for Vue/Vuex and Nuxt Applications
Stars: ✭ 1,869 (+1025.9%)
Mutual labels:  progress
Camerabutton
Instagram-like button for taking photos or recording videos
Stars: ✭ 121 (-27.11%)
Mutual labels:  button
Downloadbutton
Customizable App Store style download button
Stars: ✭ 1,532 (+822.89%)
Mutual labels:  button
Apesuperhud
A simple way to display a HUD with a message or progress information in your application.
Stars: ✭ 156 (-6.02%)
Mutual labels:  progress
Scrollprogress
🛸 Light weight library to observe the viewport scroll position
Stars: ✭ 148 (-10.84%)
Mutual labels:  progress
React Native Touchable Scale
Like touchable opacity, but scale.
Stars: ✭ 132 (-20.48%)
Mutual labels:  button

AndroidButtonProgress

Android Arsenal API

This is a combination of button and progress bar. There are 4 states in this view first Idle, Indeterminate, Determinate and Finish. it makes you easy to manage download button state in your app ui.

In a download case you can use this as.

  • 1st show download button to the user
  • 2nd show indeterminate progress bar, it tells the user that the download is connecting.
  • 3rd show determinate progress bar, which tells the user that the download is progressing
  • 4th show finish button/icon

Demo

demo

Usage

Use jitpack

allprojects {
	repositories {
		maven { url 'https://jitpack.io' }
	}
}

Gradle

dependencies {
        implementation 'com.github.abdularis:androidbuttonprogress:1.1.0'
}

Please always use same width and height for this button progress view

<com.github.abdularis.buttonprogress.DownloadButtonProgress
	android:layout_width="45dp"
	android:layout_height="45dp"/>

sc1

You can also

<com.github.abdularis.buttonprogress.DownloadButtonProgress
	android:layout_width="72dp"
	android:layout_height="72dp"
	app:progressIndeterminateSweepAngle="1"
	app:state="INDETERMINATE"/>

demo1

Use custom drawable for every state

<com.github.abdularis.buttonprogress.DownloadButtonProgress
	android:id="@+id/button_progress_2"
	android:layout_width="64dp"
	android:layout_height="64dp"
	android:layout_marginTop="20dp"
	app:idleIconDrawable="@drawable/ic_download"
	app:idleBackgroundDrawable="@drawable/bg_button_progress"
	app:cancelIconDrawable="@drawable/ic_cancel"
	app:indeterminateBackgroundDrawable="@drawable/bg_button_progress"
	app:progressIndeterminateColor="#828282"
	app:determinateBackgroundDrawable="@drawable/bg_button_progress"
	app:progressDeterminateColor="#ef2241"
	app:finishIconDrawable="@drawable/ic_finish"
	app:finishBackgroundDrawable="@drawable/bg_button_progress"/>

sc1

Note: you can use DownloadButtonProgress as upload button too just replace the idle download icon with upload icon! :)

Click listener

DownloadButtonProgress btn = findViewById(R.id.button_progress_id);

btn.addOnClickListener(new DownloadButtonProgress.OnClickListener() {
	@Override
	public void onIdleButtonClick(View view) {
		// called when download button/icon is clicked
	}

	@Override
	public void onCancelButtonClick(View view) {
		// called when cancel button/icon is clicked
	}

	@Override
	public void onFinishButtonClick(View view) {
		// called when finish button/icon is clicked
	}
});

Attributes

attrs for DownloadButtonProgress

<declare-styleable name="DownloadButtonProgress">
	<attr name="state" format="enum">
		<enum name="IDLE" value="1"/>
		<enum name="INDETERMINATE" value="2"/>
		<enum name="DETERMINATE" value="3"/>
		<enum name="FINISHED" value="4"/>			
	</attr>
	<attr name="cancelable" format="boolean"/>
	<attr name="progressIndeterminateSweepAngle" format="integer"/>

	<attr name="idleBackgroundColor" format="color"/>
	<attr name="finishBackgroundColor" format="color"/>
	<attr name="indeterminateBackgroundColor" format="color"/>
	<attr name="determinateBackgroundColor" format="color"/>

	<attr name="idleBackgroundDrawable" format="reference"/>
	<attr name="finishBackgroundDrawable" format="reference"/>
	<attr name="indeterminateBackgroundDrawable" format="reference"/>
	<attr name="determinateBackgroundDrawable" format="reference"/>

	<attr name="progress" format="integer"/>
	<attr name="maxProgress" format="integer"/>
	<attr name="progressWidth" format="dimension"/>
	<attr name="progressMargin" format="dimension"/>
	<attr name="progressDeterminateColor" format="color"/>
	<attr name="progressIndeterminateColor" format="color"/>

	<attr name="idleIconDrawable" format="reference"/>
	<attr name="idleIconWidth" format="dimension"/>
	<attr name="idleIconHeight" format="dimension"/>

	<attr name="cancelIconDrawable" format="reference"/>
	<attr name="cancelIconWidth" format="dimension"/>
	<attr name="cancelIconHeight" format="dimension"/>

	<attr name="finishIconDrawable" format="reference"/>
	<attr name="finishIconWidth" format="dimension"/>
	<attr name="finishIconHeight" format="dimension"/>
</declare-styleable>

License

No

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].