Android: кнопка изображения или кнопка, выделенная эффектом при нажатии

Вот когда я нажал на эти left and right arrow button в то время я хочу видеть этот тип эффектов на кнопке. То же самое происходит в Iphone/IOS по умолчанию.

Могу ли я сделать этот тип эффекта?

Здесь я упомянул фото, что именно я хочу.

введите описание изображения здесь

Здесь я использовал эти XML-файлы, но не получил успеха.

button_pressed.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true"><shape>
            <gradient android:angle="180" android:centerColor="#657377" android:endColor="#AFFFFFFF" android:startColor="#FFFFFFFF" android:type="linear"/>

            <corners android:radius="10dp" />
        </shape></item>

</selector>

РЕДАКТИРОВАТЬ

я использовал android:background="@drawable/button_pressed.xml" линия, но я не получил то, что я хочу точно.

Пытался:

Я использовал этот XML-файл в соответствии с ответом Пиюша, но я не добился успеха, и я получаю этот эффект.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/transparent" />
        </shape>
    </item>
    <item>
        <shape
            android:innerRadiusRatio="4"
            android:shape="ring"
            android:thicknessRatio="9"
            android:useLevel="false" >
            <gradient
                android:endColor="#00000000"
                android:gradientRadius="250"
                android:startColor="#ffffffff"
                android:type="radial" />
        </shape>
    </item>

</layer-list>

Я согласился вырезать верхнюю и нижнюю части, потому что у меня ограниченное пространство в макете для этой кнопки. что мы подумаем позже, но почему это не действует как тень и альфа и все то же самое, о котором я упоминал?

ВЫХОД: введите описание изображения здесь

Пожалуйста, помогите мне, если у кого-нибудь есть идеи по этому поводу.

Заранее спасибо.

2 ответа

Форма должна быть нарисована радиально с выцветанием от белого к черному наружу.

Попробуй это:

<shape
    xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#ffffffff"
        android:endColor="#00000000"
        android:gradientRadius="100"
        android:type="radial"/>
</shape>

Кроме того, вы не можете напрямую установить это в качестве фона для вашей кнопки. Вам нужно будет создать нарисованный файл селектора, в котором вы будете указывать различные фоны в зависимости от состояния кнопки. В этом случае вам нужно установить этот фон только при нажатии кнопки. Селектор будет выглядеть примерно так:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" android:drawable="@drawable/button_pressed"/> 
    <item android:state_selected="true" android:drawable="@drawable/button_pressed"/>
    <item android:state_focussed="true" android:drawable="@drawable/button_pressed"/>
    <item android:drawable="@android:color/transparent" />
</selector>

PS: Не рекомендуется копировать дизайн iOS при разработке приложения для Android. Инструкции по разработке Android см. По адресу: http://developer.android.com/design/building-blocks/buttons.html

Можете попробовать это относительно круглой формы, можете установить свои цвета соответственно.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item>
    <shape android:shape="rectangle" >
        <solid android:color="@color/transparent" />
    </shape>
</item>
<item>
    <shape

        android:shape="ring"
        android:useLevel="false" >
        <gradient
            android:endColor="#00000000"
            android:gradientRadius="200"
            android:startColor="#ffffffff"
            android:type="radial" />
    </shape>
</item>

Другие вопросы по тегам