好的,所以我试图复制开源的Roman Nurik的Muzei Live Wallpaper应用程序的外观和感觉。
(在这里查看他的GitHub存储库 - https://github.com/romannurik/muzei/)
当App推出时,会有一个微妙的svg路径跟踪动画以及在后台进行的Ken Burns效果。
您可以注意到该活动会流入状态栏和导航栏。
我已经能够实现背景动画,但是还没有能够弄清楚如何使活动全屏显示如下面的第二个GIF
我需要帮助将此活动全屏/放入状态栏和导航栏。
这是我能够实现的目标
这就是我要实现的目标
这是我的代码
MainActivity.Java
package devexchanges.info.kenburnview;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.Toast;
import com.flaviofaria.kenburnsview.KenBurnsView;
import com.flaviofaria.kenburnsview.RandomTransitionGenerator;
import com.flaviofaria.kenburnsview.Transition;
public class MainActivity extends AppCompatActivity {
private KenBurnsView kenBurnsView;
private boolean isPlay = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
kenBurnsView = (KenBurnsView) findViewById(R.id.image);
AccelerateDecelerateInterpolator ACCELERATE_DECELERATE = new AccelerateDecelerateInterpolator();
RandomTransitionGenerator generator = new RandomTransitionGenerator(11000, ACCELERATE_DECELERATE);
kenBurnsView.setTransitionGenerator(generator); //set new transition on kenburns view
kenBurnsView.setTransitionListener(onTransittionListener());
}
private KenBurnsView.TransitionListener onTransittionListener() {
return new KenBurnsView.TransitionListener() {
@Override
public void onTransitionStart(Transition transition) {
//Toast.makeText(MainActivity.this, "start", Toast.LENGTH_SHORT).show();
}
@Override
public void onTransitionEnd(Transition transition) {
//Toast.makeText(MainActivity.this, "end", Toast.LENGTH_SHORT).show();
}
};
}
}
activity_main.xml中
<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"
tools:context=".MainActivity">
<com.flaviofaria.kenburnsview.KenBurnsView
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/saigon"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<Button android:background="@drawable/circle_button"
android:layout_height="@dimen/intro_activate_button_size"
android:layout_width="@dimen/intro_activate_button_size"
android:text="ACTIVATE"
android:textAllCaps="true"
android:fontFamily="sans-serif-condensed"
android:textStyle="bold"
android:textSize="18dp"
android:textColor="#333"
android:id="@+id/activate_muzei_button"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="103dp"
android:elevation="2dp" />
答案 0 :(得分:14)
只需在style.xml中添加:
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
答案 1 :(得分:2)
要使活动全屏显示,请将其放入清单中:
<activity android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"/>
答案 2 :(得分:2)
只需将其添加到您的onCreate()
方法:
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
答案 3 :(得分:1)
事实证明,这个问题有一个简单的解决方案。我只需要使状态栏和导航栏透明。
发布API 21我们可以这样编程 -
getWindow().setStatusBarColor(Color.TRANSPARENT);
使它适用于较低的Android版本,我只需要在/res/values-v21/styles.xml中通过xml添加透明度
<item name="android:statusBarColor">@android:color/transparent</item>
这是最后的效果
答案 4 :(得分:0)
只需在您的活动onCreate()
中添加此代码即可getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
答案 5 :(得分:0)
如果您正在使用AppCompat活动,请使用@ style / Theme.AppCompat.Light.NoActionBar
<activity android:name=".view.activity.SplashActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
答案 6 :(得分:0)
您可以通过编程方式做到这一点:
public class ActivityName extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove title
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
}
}
答案 7 :(得分:0)
Kotlin:以编程方式针对API 21:将其放入onCreate()
@TargetApi(21)
window.statusBarColor = Color.TRANSPARENT
答案 8 :(得分:0)
在 2021 年,所有代码要么已弃用,要么不起作用。例如:
# 4-MAR-21
rows = df.loc[df['DATE'] == '2-MAR-21, :]
rows['DATE] = '3-MAR-21'
df = df.append(rows, ignore_index=True)
# 5-MAR-21
rows = df.loc[
(df["DATE"] == "2-MAR-21") & ((df["Loan ID"] == "L1") | (df["Loan ID"] == "L3")), :
]
rows["DATE"] = "4-MAR-21"
df = df.append(rows, ignore_index=True)
# Sort values
df = df.sort_values(by=["DATE"], ascending=True, inplace=False)
df = df.reset_index(drop=True)
每行都已弃用。其他一些需要 API 级别 R。所以使用样式。
在谷歌上搜索一段时间我发现
export shot=abc_123
现在在 Manifest 文件中使用这个样式
View decorView = getWindow().getDecorView();
decorView.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
// Set the content to appear under the system bars so that the
// content doesn't resize when the system bars hide and show.
| View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
// Hide the nav bar and status bar
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN);
我在从 API 21 到 30 的生产应用程序中使用此代码块。工作正常。甚至用户与他们的 SMS 或通知进行交互。当他们回到我的应用时,它又变成全屏了。