Мне нужна помощь, исчезающая в моей деятельности по запуску. Я нашел МНОГО сообщений о переходах между действиями, которые запускаются с намерениями, но ничего не о том, как исчезнуть при запуске. Я пробовал overridePendingTransition(int animationIn, int animationOut)
, но у меня это не сработало. Я поместил его в метод onCreate(..)
и метод onStart(..)
, но безуспешно. Любая помощь или направление будут оценены.
Спасибо.
2 ответа
Я кое-что придумал для вас, но это исключает панель действий. Я немного изменил демонстрацию hello world для простого примера:
Установите полупрозрачную тему для своей пусковой установки, я назвал ее Translucy:
/res/values/style.xml
<style name="Theme.Translucy" parent="android:style/Theme.Translucent"> <item name="android:windowNoTitle">true</item> <item name="android:background">@android:color/transparent</item> </style>
AndroidManifest.xml:
<activity android:name=".MainActivity" android:theme="@style/Theme.Translucy" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Создайте идентификатор для вашего основного xml-макета, я назвал его rlayout_main, и установите его невидимым:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" android:id="@+id/rlayout_main" android:visibility="invisible" android:background="@android:color/holo_blue_dark" tools:context=".MainActivity"> <TextView android:textSize="50sp" android:text="@string/hello_world" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout>
Создайте AlphaAnimation и анимируйте свой основной родительский макет:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RelativeLayout relativeLayoutMain = (RelativeLayout) findViewById(R.id.rlayout_main); AlphaAnimation alphaAnimation = new AlphaAnimation(0, 1); alphaAnimation.setDuration(3000); alphaAnimation.setFillAfter(true); relativeLayoutMain.startAnimation(alphaAnimation); } }
(РЕДАКТИРОВАТЬ) : Чтобы сэкономить немного кода, вы также можете использовать ViewPropertyAnimator для анимации вашего макета вместо создания AlphaAnimation:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RelativeLayout relativeLayoutMain = (RelativeLayout) findViewById(R.id.rlayout_main); relativeLayoutMain.animate().alpha(1).setDuration(3000); } }
Надеюсь, это поможет, как я уже сказал, это не идеально, потому что исключает ActionBar, но это может быть что-то для начала.
Не пробовал, просто уловка;
Создайте пустое действие и сделайте его пусковой установкой. В методе onCreate
начните намерение с этого действия, которое является основным действием, которое вы хотите скрыть. Теперь вы можете применить любую анимацию из первого пустого действия. И первое действие ни на что не повлияет, поскольку оно запускает второе (основное) действие, пока оно создано.
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.