2
votes

Comment supprimer le rembourrage de la barre de progression circulaire?

J'ai une barre de progression circulaire où je veux placer une image à l'intérieur comme indiqué sur la capture d'écran, la barre de progression circulaire a un remplissage par défaut, je suppose, donc je dois la supprimer pour que les deux aient les mêmes dimensions:

entrez la description de l'image ici

voici le code de la mise en page :

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/dikritem"
    android:orientation="vertical">

    <ProgressBar
        style="?android:progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/buttons"
        android:layout_centerInParent="true"
        android:layout_margin="0dp"
        android:paddingStart="@null"
        android:paddingTop="@null"
        android:paddingEnd="@null"
        android:paddingBottom="@null"
        android:progress="100"
        android:progressDrawable="@drawable/circlebackg"


        />

    <ProgressBar
        style="?android:progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/buttons"
        android:layout_centerInParent="true"
        android:paddingStart="@null"
        android:paddingTop="@null"
        android:paddingEnd="@null"
        android:paddingBottom="@null"
        android:progress="80"
        android:progressDrawable="@drawable/circle"

        />

    <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/tasbih_circ_back"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/buttons"
        android:layout_centerInParent="true"
        android:padding="35dp"
        android:src="@drawable/adkarbackground"
        app:civ_border_color="@color/border"
        app:civ_border_width="0dp" />


    <Button
        android:id="@+id/tasbih_circ_button"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/buttons"
        android:layout_centerInParent="true"
        android:background="@android:color/transparent"
        android:padding="40dp"
        android:text="1"
        android:textSize="60sp"
        android:textStyle="bold" />


    <LinearLayout
        android:id="@+id/buttons"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/adView">

        <Button
            android:id="@+id/tasbih_plus"
            android:layout_width="80dp"
            android:layout_height="60dp"
            android:layout_margin="20dp"
            android:background="@drawable/adkarbackground"
            android:text="+"
            android:textSize="40dp" />

        <Button
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:background="@drawable/adkarbackground"
            android:text="0"
            android:textSize="40sp"


            />


        <Button
            android:layout_width="80dp"
            android:layout_height="60dp"
            android:layout_margin="20dp"
            android:background="@drawable/adkarbackground"
            android:text="-"
            android:textSize="40dp" />


    </LinearLayout>

    <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"
        android:id="@+id/adView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        ads:adSize="SMART_BANNER"
        ads:adUnitId="ca-app-pub-3940256099942544/6300978111">

    </com.google.android.gms.ads.AdView>


</RelativeLayout>

existe-t-il une solution pour supprimer le remplissage par défaut ??


2 commentaires

Avez-vous essayé padding = 0 ?


oui frérot, ça n'a rien changé


3 Réponses :


-1
votes

essayez ceci dans votre code-barres de progression (fichier xml)

android:adjustViewBounds="true"
android:scaleType="fitXY"

voir ce lien: Android ImageButton recadre lors du redimensionnement


5 commentaires

ça me donne un carré et je veux un cercle


vous pouvez ajouter ce code pour recadrer l'image au milieu de la barre de progression: android: scaleType = "fitXY"


donne-moi encore un carré: /


votre image est-elle un carré? vous pouvez créer une forme et importer votre image dans la forme, puis utiliser "rayon: 50px" par exemple, puis votre forme sera un cercle, puis vous pouvez remplacer cette forme par votre image dans la propriété dessinable de la barre de progression


Je l'ai essayé mais l'image d'arrière-plan de la forme ne rentre pas dans le cercle



2
votes

si vous souhaitez rendre votre vue un peu plus grande que Essayez d'utiliser un remplissage négatif comme ou essayez d'utiliser scalex et scaley, mais utilisez des valeurs supérieures à 1 dans les valeurs d'échelle. Cela augmentera l'échelle de la vue à l'intérieur.

android:padding="-10dp"

android:scaleX="1.2"


2 commentaires

no bro Je veux que le texte de l'image soit à l'intérieur de la barre de progression circulaire, et pour cela je vais devoir définir les mêmes dimensions pour les deux mais la cprogressbar a un rembourrage que je dois d'abord supprimer


Puis-je suggérer qu'au lieu d'utiliser les bibliothèques et animations de la barre de progression, vous pouvez utiliser Lottie Animation pour obtenir le lien sur lottiefiles. com / .It est une bibliothèque incroyable qui utilise des animations Adobe et je pense qu'elle prend en charge de la version 16 du SDK aux versions sdk currunt



0
votes

En utilisant le courant com.google.android.material.progressindicator.CircularProgressIndicator , vous pouvez définir app: IndicatorInset = "0dp" vous permettant, par exemple, de définir un cercle complet comme arrière-plan dont les bordures correspondront exactement à l'indicateur de progression lui-même.


0 commentaires