Intereting Posts
Android Add Native support – неразрешенные jni.h, android / log.h и т. Д. Подтвердите идентификатор PayPal Pay, полученный компанией Android на сайте Magento Как я могу полностью скрыть идентификатор группы ExpandableListView? Как исправить ориентацию экрана для портрета для всего моего приложения PhoneGap Одновременно запускайте несколько ViewPropertyAnimators Как я могу изменить рингтон в андроиде программно? Android Studio: дубликаты файлов, скопированных в APK META-INF / DEPENDENCIES при компиляции Матрица просмотра изображений для Android + переводить «Не найдено никаких тестов» для контрольных испытаний для Lollipop и выше Добавить тень в пользовательскую форму на Android Получить данные из уведомления GCM Как возобновить работу, а не перезапускать при переходе из панели действий Есть ли более быстрый способ декодирования символов html для строки, чем Html.fromHtml ()? Android – эмулятор в ландшафтном режиме, экран не вращается Как добавить фрагмент в ViewPager? AddView отключает мое приложение

Как оживить добавление вида в Android?

Я хотел бы знать, есть ли простой способ добавить представление (кнопку) в RelativeLayout с какой-то анимацией масштаба. Я расширил класс от Button и сделал что-то вроде этого:

public class MyButton extends Button { @Override protected void onAttachedToWindow() { super.onAttachedToWindow(); ScaleAnimation anim = new ScaleAnimation(0,1,0,1); anim.setDuration(1000); anim.setFillAfter(true); this.startAnimation(anim); } 

Затем попытался добавить эту кнопку в представление, и она не сработала. Пожалуйста помоги!

Solutions Collecting From Web of "Как оживить добавление вида в Android?"

Я протестировал вашу анимированную кнопку, и она работает правильно. Должна быть какая-то другая проблема. Вероятно, вы добавляете кнопку в макет.

Чтобы добавить свою кнопку в соответствующий макет, используйте такой код.

 RelativeLayout rl = (RelativeLayout)findViewById(R.id.rl); MyButton b1 = new MyButton(Main.this); b1.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT)); rl.addView(b1); 

Или вы можете надуть кнопку из макета. Для этого создайте макет mybtn.xml содержащий реализацию вашей кнопки:

 <?xml version="1.0" encoding="utf-8"?> <PACKAGE_OF_MYBUTTON_HERE.MyButton xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" /> 

Чтобы добавить его в свой макет, выполните следующие действия:

 RelativeLayout rl = (RelativeLayout)findViewById(R.id.rl); Button b = (Button)getLayoutInflater().inflate(R.layout.mybtn, rl, false); rl.addView(b); 

Возможно, возникнет проблема с правильным позиционированием вашего представления, когда вы добавите его в относительный макет. Просто добавьте код, подобный этому, перед вызовом rl.addView(b1) (фрагмент кода добавляет новую кнопку ниже someOtherView).

 LayoutParams lp = new LayoutParams(b.getLayoutParams()); lp.addRule(RelativeLayout.BELOW, someOtherView.getId()); b.setLayoutParams(lp); 

В своей деятельности используйте вместо этого:

 parentview.addView(myButton); 

Затем оставьте кнопку с этим:

 Animation animation = AnimationUtils.loadAnimation(getBaseContext(), R.anim.slide_right_in); animation.setStartOffset(0); myButton.startAnimation(animation); 

Это пример slide_right_in.xml

 <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="800"/> </set> 

Кроме того, это функция анимации воспроизведения активности, которую я написал:

 public Animation PlayAnim( int viewid, Context Con, int animationid, int StartOffset ) { View v = findViewById(viewid); if( v != null ) { Animation animation = AnimationUtils.loadAnimation(Con, animationid ); animation.setStartOffset(StartOffset); v.startAnimation(animation); return animation; } return null; } 

Вы можете назвать это следующим образом:

 PlayAnim(R.id.bottombar, (Context) this, R.anim.slide_right_in, 0); 

Где:

1-й параметр – это идентификатор представления, к которому вы хотите применить анимацию.

Второй парасектер – это контекст, полученный внутри вашей активности.

Третий параметр – это желаемая анимация, которую вы помещаете в свою папку ресурсов анимации или из предопределенных анимаций в Android.

4-й пареметр – это начало анимации.