Eu tinha esse desenho para ter um retângulo arredondado como pano de fundo:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:radius="6dp" />
</shape>
Isso está funcionando bem, como esperado.
Agora, eu quero mudar isso para apenas arredondar os cantos superiores, então eu mudo para isso:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white" />
<stroke android:width="1dp" android:color="@color/light_gray" />
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" />
<corners android:topLeftRadius="6dp" android:topRightRadius="6dp"
android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
</shape>
Mas agora nenhum dos cantos é arredondado e recebo um retângulo simples. O que estou perdendo aqui?
android
drawable
rounded-corners
Aleks G
fonte
fonte
Respostas:
Tente fornecer estes valores:
Observe que eu mudei
0dp
para0.1dp
.EDIT: Veja o comentário de Aleks G abaixo para uma versão mais limpa
fonte
<corners android:radius="1dp" android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/>
- isso produz cantos inferiores perfeitamente quadrados, sem nem mesmo um toque de arredondamento. No entanto, sua solução praticamente funciona.android:radius="1dp"
Tente fazer algo assim:
Parece que não é adequado definir um raio de canto diferente do retângulo. Então você pode usar esse hack.
fonte
No meu caso, abaixo do código
fonte
Baseando-se a resposta de busylee , isto é como você pode fazer um
drawable
que tem apenas uma un canto arredondado (canto superior esquerdo, neste exemplo):Observe que o acima não
drawable
é exibido corretamente na visualização do Android Studio (2.0.0p7). Para visualizá-lo de qualquer maneira, crie outra visualização e use-a como .android:background="@drawable/..."
fonte
Testei seu código e obtive um botão no canto superior arredondado. Eu dei as cores como
@ffffff
e derramei#C0C0C0
.experimentar
fonte
Você pode precisar ler este https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
e abaixo há uma nota.
Nota Cada canto deve (inicialmente) receber um raio de canto maior que 1, ou então nenhum canto é arredondado. Se você deseja que cantos específicos não sejam arredondados, uma solução alternativa é usar android: radius para definir um raio de canto padrão maior que 1, mas substitua cada canto pelos valores que você realmente deseja, fornecendo zero ("0dp" ) onde você não deseja cantos arredondados.
fonte
Crie roung_top_corners.xml no drawable e copie o código abaixo
fonte