我有按钮文字和自定义背景。当我按下按钮时,背景稍微向下移动("按下&#34的效果;)。但是Text保持在同一个位置。
按下按钮后,如何移动文字?
我已尝试过文字选择器,选择器填充,但它对我没用。
按钮:
<Button
android:background="@drawable/button_blue"
android:layout_height="wrap_content"
android:textSize="30sp"
android:textColor="@drawable/selector_txt"
android:text="Push me"/>
选择器:
<selector>
<item android:drawable="@drawable/button_blue_pressed" android:state_pressed="true" />
<item android:drawable="@drawable/button_blue_unpressed" />
</selector>
按钮状态:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:right="3dp"
android:top="3dp">
<shape>
<solid android:color="#aac2bfbf" />
</shape>
</item>
<item android:right="2dp"
android:top="2dp">
<shape >
<gradient
android:endColor="@color/darkFab"
android:startColor="@color/actionBackColor" />
</shape>
</item>
</layer-list>
<layer-list>
<item
android:right="3dp"
android:top="3dp">
<shape>
<solid android:color="#aac2bfbf" />
</shape>
</item>
<item
android:bottom="2dp"
android:left="2dp">
<shape>
<gradient
android:endColor="@color/darkFab"
android:startColor="@color/actionBackColor" />
<stroke
android:width="1dp"
android:color="@color/disabled" />
</shape>
</item>
</layer-list>
文字选择器:
<selector>
<item android:color="@color/colorPrimary" android:state_pressed="true" />
<item android:color="@color/colorAccent" />
</selector>
答案 0 :(得分:0)
按下它时,您可以以编程方式更改按钮的填充。
在XML文件中为按钮分配一个ID:
android:id="@+id/button_id
然后,无论您在哪里处理按钮,都按下:
Button myButton = (Button) findViewById(R.id.button_id);
myButton.paddingTop(0, X, 0, 0); // X will be in pixles, I believe
该方法定义为:
public void setPadding(int left,int top,int right,int bottom)
在Android SDK的View类中。