Короче говоря, вот что я хотел бы добавить пользовательскую кнопку, которая выглядит так:
IMG — это файл .png в моих папках mipmap, а НЕКОТОРЫЙ ТЕКСТ — просто строковое значение. Что пунктирная линия добавляется именно как разделитель в изображение, а не в кнопку. Проблема в том, что закругленные края не появляются там, где добавляется изображение. Это выглядит так:
Мои вопросы следующие:
- Можно ли этого достичь?
- Есть ли способ переопределить атрибут
<solid />
в<shape />
? Мне нужно будет создать 10 таких кнопок, каждая с разными цветами, и если я добавлюandroid:color
с другим значением, цвет не изменится. - При добавлении изображения я выбираю только одно (например, mdpi). Если это будет отображаться на больших экранах, потребуется ли другое изображение .png в зависимости от размера?
- Есть ли определенный тип кнопки, который я должен использовать? Я хотел бы вернуть цвета при нажатии кнопки и оставаться нажатой. У меня есть смутное представление о том, как этого можно добиться, но есть ли способ сделать это и для файлов .png, или мне нужно импортировать в проект другие с уже инвертированными цветами и просто переключать их?
custom_button.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:topLeftRadius="250px"
android:bottomLeftRadius="250px"
android:topRightRadius="50px"
android:bottomRightRadius="50px" />
<solid
android:color="@color/YellowPrimary"/>
</shape>
button_styles.xml
<resources>
<style name="CategoryToggle">
<item name="android:background">@drawable/custom_button</item>
<item name="android:textAllCaps">true</item>
</style>
<style name="CategoryToggle.First">
<item name="android:color">@color/bluePrimary</item> // Does not override <solid>
<item name="android:drawableLeft">@mipmap/icon_48mdpi</item>
<item name="android:text">@string/first_cat</item>
</style>
</resources>
button_layout.xml
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
style="@style/CategoryToggle.History"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
На данный момент у меня нет кода Java, так как я только начал и пытаюсь реализовать этот странный формат кнопки.
icon_48mdpi
желтый фон? - person Bryan   schedule 06.03.2019