ImageView 不覆盖 systemUI android
ImageView not covering systemUI android
我正在尝试让 ImageView
的屏幕截图占据全屏(包括顶部的 SystemUi 导航栏。我尝试了 Kitkat
中介绍的 "Immersive full screen" ,这确实带走了 UI 条,但我的图像仍然没有一直延伸到顶部(如图像顶部的蓝色条所示)。开发者网站说它是这样做的这样当 UI 返回时图像不必调整大小,但如果您根本不希望 UI 可见,它不会提供替代解决方案。
屏幕截图 image <- 我还没有足够的声誉来 post 图片。
这是我试过的代码(注释掉的部分是我试过但也不起作用的其他选项):
public class TrickScreen extends AppCompatActivity {
@Bind(R.id.screenshotImage) ImageView mScreenshotImage;
private Uri mMediaUri;
View mTrickScreenView;
RelativeLayout rl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_trick_screen);
ButterKnife.bind(this);
mTrickScreenView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
int uiOptions2 = View.SYSTEM_UI_FLAG_IMMERSIVE;
int uiOptions3 = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
mTrickScreenView.setSystemUiVisibility(uiOptions | uiOptions2 | uiOptions3);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Intent intent = getIntent();
mMediaUri = intent.getData();
mScreenshotImage.setImageURI(mMediaUri);
// File file = new File(mMediaUri.getPath());
// Drawable drawable = Drawable.createFromPath(file.getAbsolutePath());
// rl = (RelativeLayout)findViewById(R.id.trickRelativeLayout);
// rl.setBackground(drawable);
我明白了。最近他们改变了 XML 格式,每个 activity 包含两个 XML 文档(例如 activity_main.xml
和 content_main.xml
)。我通常只在内容文件中工作,但你也必须确保 activity_main.xml
中的代码是你需要的。在我的例子中,我需要删除一行 - android:fitsSystemWindow = "true
。删除此行后,ImageView
会延伸到状态栏和导航栏区域。
我正在尝试让 ImageView
的屏幕截图占据全屏(包括顶部的 SystemUi 导航栏。我尝试了 Kitkat
中介绍的 "Immersive full screen" ,这确实带走了 UI 条,但我的图像仍然没有一直延伸到顶部(如图像顶部的蓝色条所示)。开发者网站说它是这样做的这样当 UI 返回时图像不必调整大小,但如果您根本不希望 UI 可见,它不会提供替代解决方案。
屏幕截图 image <- 我还没有足够的声誉来 post 图片。
这是我试过的代码(注释掉的部分是我试过但也不起作用的其他选项):
public class TrickScreen extends AppCompatActivity {
@Bind(R.id.screenshotImage) ImageView mScreenshotImage;
private Uri mMediaUri;
View mTrickScreenView;
RelativeLayout rl;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_trick_screen);
ButterKnife.bind(this);
mTrickScreenView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
int uiOptions2 = View.SYSTEM_UI_FLAG_IMMERSIVE;
int uiOptions3 = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
mTrickScreenView.setSystemUiVisibility(uiOptions | uiOptions2 | uiOptions3);
// requestWindowFeature(Window.FEATURE_NO_TITLE);
// getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
Intent intent = getIntent();
mMediaUri = intent.getData();
mScreenshotImage.setImageURI(mMediaUri);
// File file = new File(mMediaUri.getPath());
// Drawable drawable = Drawable.createFromPath(file.getAbsolutePath());
// rl = (RelativeLayout)findViewById(R.id.trickRelativeLayout);
// rl.setBackground(drawable);
我明白了。最近他们改变了 XML 格式,每个 activity 包含两个 XML 文档(例如 activity_main.xml
和 content_main.xml
)。我通常只在内容文件中工作,但你也必须确保 activity_main.xml
中的代码是你需要的。在我的例子中,我需要删除一行 - android:fitsSystemWindow = "true
。删除此行后,ImageView
会延伸到状态栏和导航栏区域。