Изменение ресурса прессованного изображения по коду - PullRequest
1 голос
/ 03 января 2012

Можно ли на изображениях воздействовать на изображения, чтобы имитировать нажатое состояние?(чтобы уменьшить размер APK)

1 Ответ

1 голос
/ 03 января 2012
<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item android:state_pressed="true"
           android:drawable="@drawable/button_pressed" /> <!-- pressed -->
     <item android:state_focused="true"
           android:drawable="@drawable/button_focused" /> <!-- focused -->
     <item android:drawable="@drawable/button_normal" /> <!-- default -->
 </selector>

, а затем каждая кнопка также может быть определена в XML:

button_normal:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#DD63594A"
        android:endColor="#809C7D5A"
        android:angle="90"/>
    <stroke android:width="2dp" android:color="#FF524539" />
        <!-- android:dashWidth="2dp" android:dashGap="1dp" /> -->
    <padding android:left="4dp"
        android:top="4dp"
        android:right="4dp"
        android:bottom="4dp"/>
    <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" 
        android:topLeftRadius="7dp" android:topRightRadius="7dp"/>
</shape> 

button_pressed:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#80A57D08"
        android:endColor="#DDE75D31"
        android:angle="90"/>
    <stroke android:width="2dp" android:color="#FF524539" />
       <!-- android:dashWidth="2dp" android:dashGap="1dp" /> -->
    <padding android:left="4dp"
        android:top="4dp"
        android:right="4dp"
        android:bottom="4dp"/>
    <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" 
        android:topLeftRadius="7dp" android:topRightRadius="7dp"/> 
</shape> 

button_focused:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient
        android:startColor="#80E75D31"
        android:endColor="#DDE75D31"
        android:angle="90"/>
    <stroke android:width="2dp" android:color="#FF524539" />
        <!-- android:dashWidth="2dp" android:dashGap="1dp" /> --> 
    <padding android:left="4dp"
        android:top="4dp"
        android:right="4dp"
        android:bottom="4dp"/>
    <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" 
        android:topLeftRadius="7dp" android:topRightRadius="7dp"/> 
</shape> 

Что касается анимации, то это действительно зависит от того, что вы хотите сделать и с какой целью:

Вы можете сделать свой собственный (покадровый), например: http://www.twintechs.com/2008/06/frame-by-frame-xml-animation-with-google-android/ & http://code.google.com/p/android-animation-example/

Или используйте AnimatedViews: http://mylifewithandroid.blogspot.com/2008/04/animated-views.html

Надеюсь, что это поможет.Это сэкономит место; -)

К вашему сведению: если вы ищете сжатие, смотрите не дальше http://trimage.org/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...