zu www.bildungsgueter.de nächster Abschnitt zur Inhaltsübersicht des Kapitels vorheriger Abschnitt

Darstellungseigenschaften eines Schiebereglers festlegen

Das Aussehen der Reglerbahn festlegen

Die Reglerbahn besteht aus zwei übereinandergelegten Drawables, dem Hintergrund und dem Wertindikator. Hintergrund und Wertindikator werden in einem LayerDrawable zusammengefasst. Dabei muss der Hintergrund vor dem Wertindikator kommen. Der Wertindikator muss ein ClipDrawable sein, das die Darstellung eines weiteren Drawable von einem Zahlenwert abhängig macht.

private void configureIndicator(ProgressBar pb) {
     ShapeDrawable backgroundShape = new ShapeDrawable();
     backgroundShape.getPaint().setColor(Color.rgb(130, 130, 130));
     //pb.setBackgroundDrawable(backgroundShape);  // Android 4.0.3
     pb.setBackground(backgroundShape);  // Android 4.3

     RoundRectShape rrs3 = 
         new RoundRectShape(new float[] { 6, 6, 6, 6, 6, 6, 6, 6 },
        		    null,
        		    null);
     ShapeDrawable lineShape = new ShapeDrawable(rrs3);
     lineShape.getPaint().setColor(Color.rgb(0, 0, 120));
     lineShape.setIntrinsicHeight(8);
        //ShapeDrawable progressShape = new ShapeDrawable();
        //progressShape.getPaint().setColor(Color.rgb(230, 0, 0));  
     GradientDrawable progressLine = new GradientDrawable(
              GradientDrawable.Orientation.LEFT_RIGHT,
              new int[] { Color.rgb(240, 180, 180),
        		  Color.rgb(240,  10,  10)
        		});
     progressLine.setCornerRadius(4.0f);
     ClipDrawable progressShape = new ClipDrawable(progressLine,
       		 Gravity.LEFT,
       		 ClipDrawable.HORIZONTAL);
        
     LayerDrawable progressLayers =
                   new LayerDrawable(new Drawable[] {lineShape, progressShape});
        
     pb.setProgressDrawable(progressLayers);
}

vorheriger Abschnitt zur Inhaltsübersicht des Kapitels nächster Abschnitt