Динамическое изменение положения X и Y кнопки / изменение поля кнопки - PullRequest
1 голос
/ 24 сентября 2010

Я хотел бы изменить поле моих кнопок в d applcn ... предположим, у меня есть 5 таких кнопок в линейной раскладке, одна под d другой ...

Когда я фокусируюсь на кнопке,ширина должна увеличиваться (что я знаю, как обращаться с ней), и в то же время ширина должна линейно увеличиваться как влево, так и вправо.

т.е. если текущая ширина кнопки равна 250, координата х равна50 (это означает, что левая кнопка равна 50, а правая кнопка равна 300), когда я фокусируюсь на кнопке, я должен получить координату х, равную 75 (левая = 25 и правая = 325).Как изменить маржу / х координату кнопки?

1 Ответ

1 голос
/ 24 сентября 2010

Проверьте классы Animation и ScaleAnimation в http://developer.android.com/reference/android/view/animation/Animation.html и http://developer.android.com/reference/android/view/animation/ScaleAnimation.html.

Один из способов сделать это - определить два XML-файла в вашем res/animкаталог, один, чтобы сделать кнопку больше, а другой, чтобы сделать ее меньше.Так что для makeLarger.xml

<scale xmlns:android="http://schemas.android.com/apk/res/android" 
android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
android:fromXScale="1" 
android:toXScale="1.1" 
android:pivotX="50%" 
android:pivotY="50%" 
android:duration="200" 
android:fillAfter="true" />

Здесь вы увеличиваете ширину на 10%, с 1,0 до 1,1.Для файла makeSmaller.xml поменяйте местами значения android:fromXScale и android:toXScale или просто установите их так, как вам нравится.Чтобы применить анимацию к вашей кнопке,

Button myButton = (Button)findViewById(R.id.myButton);
myButton.setAnimation(AnimationUtils.loadAnimation(this, R.anim.makeLarger));

Конечно, анимации makeLarger и makeSmaller должны быть установлены при нажатии кнопки.

Надеюсь, это поможет!

...