Custom ProgressBar

Sto provando a creare un ProgresBar che somiglia a quanto segue:

ProgressBar desiderato

  • Crea menu Opzioni per RecyclerView-Item
  • Necessità di implementare la cattura della firma
  • Filtro dello schermo di luminosità
  • Il layout di notifica personalizzato non funziona in Android 2.3 o versione successiva
  • Come inserire una nuova linea in stringhe in Android
  • Android- tornando all'attività precedente con un valore intent diverso
  • Finora ho creato un object che estende ProgressBar, e ora sto cercando di capire quale sia il mio prossimo passo.

    So che devo ignorare onDraw() con una certa logica che deciderà quanti frameworks di colore. Questo è banale.

    Quello che non so come fare è get queste piazze in primo luogo. Come sostituire il disegno predefinito, quindi quando aggiungo la barra personalizzata nel layout posso vedere qualcosa come la mia image?

  • android corsivo carattere
  • La session di Facebook è chiusa dopo il process di logging in Android
  • come colbind due attività
  • Android setOnClickListener non funziona
  • Come rendere il text splendente?
  • TextView che è linkified e selezionabile?
  • One Solution collect form web for “Custom ProgressBar”

    provare questa impostazione personalizzabile:

     class ProgressDrawable extends Drawable { private static final int NUM_RECTS = 10; Paint mPaint = new Paint(); @Override protected boolean onLevelChange(int level) { invalidateSelf(); return true; } @Override public void draw(Canvas canvas) { int level = getLevel(); Rect b = getBounds(); float width = b.width(); for (int i = 0; i < NUM_RECTS; i++) { float left = width * i / NUM_RECTS; float right = left + 0.9f * width / NUM_RECTS; mPaint.setColor((i + 1) * 10000 / NUM_RECTS <= level? 0xff888888 : 0xffbbbbbb); canvas.drawRect(left, b.top, right, b.bottom, mPaint); } } @Override public void setAlpha(int alpha) { } @Override public void setColorFilter(ColorFilter cf) { } @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; } } 

    e testarlo con quanto segue in onCreate:

     LinearLayout ll = new LinearLayout(this); ll.setOrientation(LinearLayout.VERTICAL); final ProgressBar pb = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal); Drawable d = new ProgressDrawable(); pb.setProgressDrawable(d); pb.setPadding(20, 20, 20, 0); ll.addView(pb); OnSeekBarChangeListener l = new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar seekBar) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { int newProgress = pb.getMax() * progress / seekBar.getMax(); Log.d(TAG, "onProgressChanged " + newProgress); pb.setProgress(newProgress); } }; int[] maxs = {4, 10, 60, 110}; for (int i = 0; i < maxs.length; i++) { SeekBar sb = new SeekBar(this); sb.setMax(maxs[i]); sb.setOnSeekBarChangeListener(l); sb.setPadding(20, 20, 20, 0); ll.addView(sb); } setContentView(ll); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.