android:imageButton background:在state_pressed上实现以缩放图像

时间:2015-03-11 19:03:01

标签: android android-layout

我的android xml布局:

 <ImageButton
    android:id="@+id/imageButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:clickable="true"
    android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="8dp"
    android:background="@null"
    android:src="@drawable/ic_action_next_item_up" />

我需要在后台实现Imagebutton属性:当用户点击imageButton时,它会放大图像。 (setScaleX(1.5)...)

Theres a way please?

2 个答案:

答案 0 :(得分:1)

也许插入抽奖可以帮助你 - 我使用以下代码 -

     <inset xmlns:android="http://schemas.android.com/apk/res/android"
     android:drawable="@drawable/your_shape_drawable" android:insetBottom="10dip"
     android:insetLeft="10dip" android:insetRight="10dip" android:insetTop="10dip"
     android:visible="true" />

修改:实施例

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <inset android:insetBottom="-10dp" android:insetLeft="-10dp" android:insetRight="-10dp" android:insetTop="-10dp">
            <bitmap android:src="@drawable/ic_launcher" />
        </inset>
    </item>

    <item>
        <inset android:insetBottom="10dp" android:insetLeft="10dp" android:insetRight="10dp" android:insetTop="10dp">
            <bitmap android:src="@drawable/ic_launcher" />
        </inset>
    </item>
</selector>

答案 1 :(得分:0)

在Java中执行并使用ScaleAnimation,例如:

   ScaleAnimation scaleAnimation = new ScaleAnimation(1, 1.5f, 1, 1.5f);

    scaleAnimation.setDuration(1000);  // animates for 1000 ms
    scaleAnimation.setFillAfter(true); // stays 1.5f after animation

    yourImageView.startAnimation(scaleAnimation);

在ImageButton OnClickListener中启动动画