Adicionei uma RatingBar em um layout:
<RatingBar
android:id="@+id/ratingbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numStars="5"
android:stepSize="1.0"
/>
Mas o estilo padrão da barra de classificação é muito grande.
Eu tentei alterá-lo adicionando o estilo android:style="?android:attr/ratingBarStyleSmall"
Mas o resultado é muito pequeno e é impossível definir uma taxa com essa propriedade.
Como eu poderia fazer?
Como colar o código fornecido aqui ...
Passo 1. Você precisa de suas próprias estrelas de classificação em
res/drawable
...Passo-2 Em
res/drawable
você precisaratingstars.xml
como segue ...Passo-3 Em
res/values
você precisastyles.xml
como segue ...Etapa 4 no seu layout ...
fonte
Apenas use:
Mude o fator de escala de acordo com sua necessidade.
Para escalar sem criar um preenchimento à esquerda, adicione
fonte
codeandroid:scaleX="0.75" android:scaleY="0.75" android:layout_marginRight="-25dp"
android:layout_height="40dp"
Não há necessidade de adicionar um ouvinte ao arquivo
?android:attr/ratingBarStyleSmall
. Basta adicionarandroid:isIndicator=false
e ele capturará eventos de clique, por exemplofonte
o pequeno implementar pelo sistema operacional
fonte
aplique isso.
fonte
Encontrei uma solução mais fácil do que acho que foi dada pelos mencionados acima e mais fácil do que criar a sua própria. Eu simplesmente criei uma pequena barra de classificação e adicionei um onTouchListener a ela. A partir daí, calculo a largura do clique e determino o número de estrelas a partir disso. Depois de usar isso várias vezes, a única peculiaridade que encontrei é que o desenho de uma pequena barra de classificação nem sempre fica certo em uma tabela, a menos que eu o inclua em um LinearLayout (parece correto no editor, mas não no dispositivo) . Enfim, no meu layout:
e dentro da minha atividade:
Espero que isto ajude alguém. Definitivamente mais fácil do que desenhar (embora eu tenha achado que isso também funciona, mas eu só queria um uso fácil das estrelas).
fonte
ratingBarStyleSmall
estrelas são realmente pequenas demais para serem úteis. Acho que vou ter que rolar sozinho para conseguir estrelas de tamanho intermediário.fonte
// adicione estas linhas para uma pequena barra de classificação
fonte
embora a resposta de Farry funcione, para dispositivos Samsung o RatingBar tomou a cor azul aleatória em vez da definida por mim. Então use
em vez de.
Código completo de como usá-lo:
fonte
A melhor resposta para a barra de classificação pequena
fonte
Use este código
fonte
fonte
A melhor resposta que recebi
usuário como este
Aumente / diminua os tamanhos usando o valor scaleX e scaleY
fonte
use o código a seguir para uma barra de classificação pequena com o evento onTouch
fonte
Depois de muita pesquisa, encontrei a melhor solução para reduzir o tamanho das barras de classificação personalizadas: obter o tamanho do progresso desenhável em determinados tamanhos, conforme mencionado abaixo:
xxhdpi - 48 * 48 px
xhdpi - 36 * 36 px
hdpi - 24 * 24 px
E com estilo, coloque a minheight e maxheight como 16 dp para toda a resolução.
Informe-me se isso não ajudar a obter as melhores barras de classificação para tamanhos pequenos, pois achei esses tamanhos muito compatíveis e equivalentes ao atributo de estilo ratingbar.small.
fonte
Está funcionando para mim na barra de classificação xml style = "? Android: attr / ratingBarStyleSmall" adicione this.it funcionará.
fonte
Resolvo esse problema da seguinte maneira: style = "? Android: attr / ratingBarStyleSmall"
fonte