Java Can';t在透明状态栏下获取图像(图像视图)
我正在尝试在Android Studio的状态栏下获取图像。到目前为止,我已经设法使状态栏完全透明,但我似乎不知道如何在它下面实际绘制图像。有人能给我指出正确的方向吗 谢谢 我的主要活动:Java Can';t在透明状态栏下获取图像(图像视图),java,android,statusbar,Java,Android,Statusbar,我正在尝试在Android Studio的状态栏下获取图像。到目前为止,我已经设法使状态栏完全透明,但我似乎不知道如何在它下面实际绘制图像。有人能给我指出正确的方向吗 谢谢 我的主要活动: public class MainActivity extends AppCompatActivity { private int newPosition = 0; private int currentPosition = 0; @Override protected vo
public class MainActivity extends AppCompatActivity {
private int newPosition = 0;
private int currentPosition = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView bottomNav = findViewById(R.id.bottom_navigation);
bottomNav.setOnNavigationItemSelectedListener(navListener);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new InfoFragment()).commit();
}
private BottomNavigationView.OnNavigationItemSelectedListener navListener =
new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
Fragment selectedFragment = null;
switch (menuItem.getItemId()) {
case R.id.nav_info:
selectedFragment = new InfoFragment();
newPosition = 1;
break;
case R.id.nav_event:
selectedFragment = new EventsFragment();
newPosition = 2;
break;
case R.id.nav_shop:
selectedFragment = new ShopFragment();
newPosition = 3;
break;
}
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
if (currentPosition < newPosition) {
//transaction.setCustomAnimations(R.anim.enter_from_right, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_right);
} else if (currentPosition > newPosition) {
//transaction.setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_left, R.anim.enter_from_left, R.anim.exit_to_left);
}
transaction.addToBackStack(null);
transaction.add(R.id.fragment_container, selectedFragment, "FRAGMENT").commit();
currentPosition = newPosition;
return true;
}
};
}
public类MainActivity扩展了AppCompatActivity{
私有int newPosition=0;
私有int currentPosition=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BottomNavigationView bottomNav=findViewById(R.id.bottom\u导航);
bottomNav.setOnNavigationItemSelectedListener(navListener);
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_容器,新的InfoFragment()).commit();
}
private BottomNavigationView.OnNavigationItemSelectedListener navListener=
新建BottomNavigationView.OnNavigationItemSelectedListener(){
@凌驾
公共布尔值onNavigationItemSelected(@NonNull MenuItem MenuItem){
片段selectedFragment=null;
开关(menuItem.getItemId()){
案例R.id.nav_信息:
selectedFragment=newinfofragment();
newPosition=1;
打破
案例R.id.nav_事件:
selectedFragment=新事件片段();
newPosition=2;
打破
案例R.id.nav_车间:
selectedFragment=新的ShopFragment();
newPosition=3;
打破
}
FragmentManager FragmentManager=getSupportFragmentManager();
FragmentTransaction=fragmentManager.beginTransaction();
如果(当前位置<新位置){
//transaction.setCustomAnimations(R.anim.enter_from_right,R.anim.exit_to_right,R.anim.enter_from_right,R.anim.exit_to_right);
}else if(当前位置>新位置){
//transaction.setCustomAnimations(R.anim.enter_from_left,R.anim.exit_to_left,R.anim.enter_from_left,R.anim.exit_to_left);
}
transaction.addToBackStack(空);
添加(R.id.fragment_容器,selectedFragment,“fragment”).commit();
当前位置=新位置;
返回true;
}
};
}
My activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:layout_above="@id/bottom_navigation"/>
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:menu="@menu/bottom_navigation"
android:background="?android:attr/windowBackground"
/>
</RelativeLayout>
MinSDK版本是
22
,TargetSDK版本是28
看看android:fitSystemWindows
和/或API
fitSystemWindows
基本上是告诉系统您希望视图能够适应整个屏幕。与默认情况相反,在默认情况下,视图仅渲染从状态栏下方到导航栏正上方的拟合
WindowInsets
可用于进一步微调将绘制或不绘制系统UI的位置
对于您的用例,
android:fitSystemWindows
应该足够了看看android:fitSystemWindows
和/或API
fitSystemWindows
基本上是告诉系统您希望视图能够适应整个屏幕。与默认情况相反,在默认情况下,视图仅渲染从状态栏下方到导航栏正上方的拟合
WindowInsets
可用于进一步微调将绘制或不绘制系统UI的位置
对于您的用例,
android:fitSystemWindows
应该足够了我已经发现并尝试过使用它,但实际上没有任何变化。在这种情况下,也许可以显示您尝试过的代码,这样更容易看到正在发生的事情。同样重要的是您的minSdk和targetSdk版本,以及您使用的库。例如,支持设计、appcompat或相关库我已经用我认为重要的代码编辑了我的帖子,我已经找到并尝试过使用它,但实际上没有任何变化。在这种情况下,可能会显示你尝试过的代码,这使我更容易看到发生了什么。同样重要的是您的minSdk和targetSdk版本,以及您使用的库。例如,支持设计、appcompat或相关库我用我认为重要的代码编辑了我的帖子