独自のデバイスのバッテリー レベルを示すために使用するカスタム ビューを作成しようとしています。
したがって、デバイスのバッテリー レベルが読み取らsetPercentage(int batteryLevel)
れると、カスタム ビューでメソッドが呼び出されます。
問題は、設定した値に関係なく、カスタム ビューで何も変更されないように見えることです。
クラスは次のとおりです。
public class RectangleView extends LinearLayout {
private ArrayList<ImageView> views = new ArrayList<ImageView>();
public RectangleView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init(context);
}
public RectangleView(Context context) {
super(context);
init(context);
}
private void init(Context context) {
this.setOrientation(LinearLayout.HORIZONTAL);
for (int i = 0; i < 10; i++) {
ImageView loadingPiece = new ImageView(context);
loadingPiece.setBackgroundColor(Color.BLACK);
this.addView(loadingPiece);
LayoutParams layoutParams = (LayoutParams)loadingPiece.getLayoutParams();
layoutParams.weight = 1.0f;
layoutParams.height = this.getHeight();
layoutParams.width = 0;
loadingPiece.setLayoutParams(layoutParams);
views.add(loadingPiece);
}
}
public void setPercentage(int amountToShow) {
for (int i = 0; i < views.size(); i++)
if (i < amountToShow)
views.get(i).setVisibility(View.VISIBLE);
else
views.get(i).setVisibility(View.INVISIBLE);
}
}
setPersentage(5) を呼び出すと、5 つのイメージビューが表示されるはずですが、何も変更されておらず、ビュー自体が空のように見えます。