鄭州app開發(fā)自定義控件loading等待。因為在制作項目中,需要自己動手制作空間。下面是關(guān)于loading等待控件的全部代碼。
為獨山子等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及獨山子網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、網(wǎng)站設(shè)計、獨山子網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.widget.ImageView;
import androidx.annotation.Nullable;
import cn.xhhkj.himalaya.R;
@SuppressLint("AppCompatCustomView")
public class LoadingView extends ImageView {
//旋轉(zhuǎn)角度
private int rotateDegree=0;
private boolean mNeedRotate=false;
public LoadingView(Context context) {
this(context,null);
}
public LoadingView(Context context, @Nullable AttributeSet attrs) {
this(context, attrs,0);
}
public LoadingView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
//設(shè)置圖標
setImageResource(R.mipmap.loading);
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
mNeedRotate=true;
//綁定到window的時候
post(new Runnable() {
@Override
public void run() {
rotateDegree+=30;
rotateDegree=rotateDegree<=360?rotateDegree:0;
invalidate();
//是否繼續(xù)旋轉(zhuǎn)
if (mNeedRotate){
postDelayed(this,100);
}
}
});
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
//從window中解綁了
mNeedRotate=false;
}
@Override
protected void onDraw(Canvas canvas) {
/**
* 第一個參數(shù)是旋轉(zhuǎn)的角度
* 第二個參數(shù)是旋轉(zhuǎn)的x坐標
* 第三個參數(shù)是旋轉(zhuǎn)的y坐標
*/
canvas.rotate(rotateDegree,getWidth()/2,getHeight()/2);
super.onDraw(canvas);
}
}