2015-11-21 4 views
0

Я пытаюсь сделать снимок экрана ImageView на весь экран (включая панель навигации SystemUi в верхней части экрана. Я попробовал «Immersive full screen», представленный в Kitkat, и это действительно так откройте панель пользовательского интерфейса, но мое изображение все еще не распространяется до самого верха (как видно по синей полосе в верхней части изображения). Сайт разработчика говорит, что он делает это, чтобы изображение не было изменение размера, когда UI возвращается, но он не предлагает альтернативное решение, если вы не хотите, чтобы пользовательский интерфейс видимый на всехImageView не покрывает systemUI android

скриншот image < -.. Я не хватает репутации еще размещать изображения

Вот код, который я попробовал (комментируемого из секции другие варианты, которые я пытался, которые не работали либо):

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); 

ответ

0

Я понял это. Недавно они переключили формат XML, чтобы включить два XML-документа на активность (например, activity_main.xml и content_main.xml). Обычно я работаю только в файле содержимого, но вы также должны убедиться, что код в activity_main.xml - это то, что вам нужно. В моем случае мне нужно было удалить одну строку - android:fitsSystemWindow = "true. Как только я удаляю эту строку, ImageView распространяется на панели состояния и области навигационной панели.

Смежные вопросы