Android 사용자 정의 멋 진 진행 막대(번개 에너지 막대)
12093 단어 android
Andorid 5.0 이 제공 하 는 cardView 를 통 해 원 각 을 자 르 고 절 도 를 중첩 하 는 형식 으로 View 의 scrollY 를 조정 하여 멋 진 진 진 도 를 완성 합 니 다.
진행 코드
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
/**
* Created by Administrator on 2017/9/29 0029.
*/
public class EnergyView extends RelativeLayout {
public static final String TAG = EnergyView.class.getSimpleName();
private ImageView img;
private View empty;
public EnergyView(Context context) {
this(context,null);
}
public EnergyView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
public EnergyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
LayoutInflater in = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
in.inflate(R.layout.energy_view, this, true);
img = (ImageView) findViewById(R.id.img);
empty = findViewById(R.id.img_empty);
}
private float currentProgress = 0;
public void setProgress(int progress) {
if(currentProgressint height = img.getHeight();
float j = (float) Math.abs((currentProgress - maxProgress)) / (float) maxProgress;
float k = height *j;
float l = height-k;
img.setScrollY((int) l);
}
}
private int maxProgress = 100;
public void setMaxProgress(int maxProgress) {
this.maxProgress = maxProgress;
}
public int getCurrentProgress() {
return (int) currentProgress;
}
public void clearProgress() {
currentProgress = 0;
img.setScrollY(0);
}
public void setEmptyVisibility(int visibility) {
empty.setVisibility(visibility);
}
}
레이아웃 파일 코드
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clipChildren="false"
android:background="@android:color/transparent">
<android.support.v7.widget.CardView
android:layout_centerInParent="true"
android:id="@+id/energy_view_zhuti"
app:cardBackgroundColor="@android:color/transparent"
app:cardCornerRadius="15dp"
app:cardElevation="0dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@mipmap/icon_energy_0" />
<android.support.v7.widget.CardView
app:cardBackgroundColor="@android:color/transparent"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:cardCornerRadius="8dp"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@mipmap/icon_energy_4" />
<ImageView
android:id="@+id/img"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@mipmap/icon_energy_3" />
<ImageView
android:src="@mipmap/icon_energy_5"
android:layout_gravity="center"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:src="@mipmap/icon_energy_2" />
<ImageView
android:layout_marginRight="2dp"
android:layout_marginTop="4dp"
android:src="@mipmap/icon_energy_1"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<ImageView
android:id="@+id/img_empty"
android:src="@mipmap/icon_energy_empty"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
android.support.v7.widget.CardView>
android.support.v7.widget.CardView>
RelativeLayout>
원본 주소
Android 사용자 정의 멋 진 진행 막대
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.