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>

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

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

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

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


person sam_k    schedule 13.05.2013    source источник
comment
Вы получили какое-либо решение для этого? даже я хочу добиться того же эффекта   -  person Goofy    schedule 30.08.2013
comment
@ Гуфи НЕТ :( у тебя есть?   -  person sam_k    schedule 30.08.2013
comment
тогда как вы справляетесь с таким эффектом? я тоже пытаюсь добиться этого эффекта   -  person Goofy    schedule 31.08.2013


Ответы (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

person ps2010    schedule 13.05.2013
comment
Спасибо за ваш ответ .. Я использовал, но не получил форму радиуса .. Я получаю эффект в прямоугольном режиме .. - person sam_k; 13.05.2013
comment
Убедитесь, что ваша стрелка для рисования, которую вы установили в качестве источника, прозрачна за пределами стрелки. Также убедитесь, что кнопка достаточно велика, чтобы вместить этот фон выделения. Кроме того, если вы можете опубликовать эффект, который вы получаете после использования моего решения, я смогу лучше его прокомментировать. - person ps2010; 14.05.2013

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

<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>

person PiyushMishra    schedule 13.05.2013
comment
спасибо за ответ .. поэтому я должен использовать ответ @ ps2010, но просто изменить только файл формы xml с вашими ответами? - person sam_k; 13.05.2013
comment
@Sam_k да, вы можете проверить прессу штата или сфокусировать ее только на форме. - person PiyushMishra; 13.05.2013
comment
Да, я использовал, но я получаю овальную форму, а не форму радиуса.. Я думаю, что мне также нужно установить альфу.. потому что вы можете видеть на изображении от центра к краям цвет постепенно становится от белого к черному - person sam_k; 13.05.2013
comment
@Sam_k вам нужно изменить его в соответствии с вашими потребностями, как вы можете видеть, я удалил ненужные вещи, такие как android:innerRadiusRatio=4 и android:thicknessRatio=9 - person PiyushMishra; 13.05.2013
comment
Это также дает тот же результат - person sam_k; 13.05.2013