2015-02-18 3 views
1

Я пишу приложение, используя камеру на текстуре. Во-первых, камера находится в маленьком окне, и когда вы нажимаете на кнопку, она должна быть растянута до полного экрана.Растянутое изображение с камеры на TextureView

small window

fuulscreen mode

Когда textureview в полноэкранном режиме все в порядке. Но когда я установил фиксированную высоту текстуры, изображение с камеры сжимается. Как правильно настроить изображение?

Кнопка OnClick слушатель

ViewGroup.LayoutParams params = mTextureView.getLayoutParams(); 
if(!isFullScreen) { 
    isFullScreen = true; 
    DisplayMetrics dm = new DisplayMetrics(); 
    getWindowManager().getDefaultDisplay().getMetrics(dm); 
    params.width = dm.widthPixels; 
    params.height = dm.heightPixels; 
    mTextureView.setLayoutParams(params); 
}else{ 
    isFullScreen = false; 
    params.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200, getResources().getDisplayMetrics()); 
    mTextureView.setLayoutParams(params); 
} 
+0

Вы можете сохранить соотношение сторон, регулируя Матрица TextureView. См. Пример графического проигрывателя Grafika's TextureView. https://github.com/google/grafika/blob/master/src/com/android/grafika/PlayMovieActivity.java, функция 'adjustAspectRatio()'. – fadden

ответ

0

Я cretaed его с помощью прекрасного библиотеки https://github.com/umano/AndroidSlidingUpPanel

<com.sothree.slidinguppanel.SlidingUpPanelLayout xmlns:sothree="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/sliding_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="bottom" 
    sothree:umanoDragView="@+id/dragView" 
    sothree:umanoInitialState="collapsed" 
    sothree:umanoPanelHeight="200dp" 
    sothree:umanoParalaxOffset="0dp"> 

    <!-- MAIN CONTENT --> 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 


    <!-- SLIDING LAYOUT --> 
    <LinearLayout 
     android:id="@+id/dragView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/black" 
     android:clickable="true" 
     android:focusable="true" 
     android:orientation="vertical"> 

     <TextureView 
      android:id="@+id/texture_view" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </LinearLayout> 

</com.sothree.slidinguppanel.SlidingUpPanelLayout> 

и добавил параллакс для прокрутки камеры

slidingPanel.setPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() { 
     @Override 
     public void onPanelSlide(View panel, float slideOffset) { 
      dragView.setPadding(0, (int) (parallaxOffset * slideOffset - parallaxOffset), 0, 0); 
     } 

     @Override 
     public void onPanelExpanded(View panel) { 
      Log.i(TAG, "onPanelExpanded"); 
      resizeBtn.setSelected(true); 
     } 

     @Override 
     public void onPanelCollapsed(View panel) { 
      Log.i(TAG, "onPanelCollapsed"); 
      resizeBtn.setSelected(false); 
     } 

     @Override 
     public void onPanelAnchored(View panel) { 
      Log.i(TAG, "onPanelAnchored"); 
     } 

     @Override 
     public void onPanelHidden(View panel) { 
      Log.i(TAG, "onPanelHidden"); 
     } 
    }); 
} 
Смежные вопросы