2014-02-12 3 views
0

У меня есть что-то вроде этого:Программного размер framelayout

<FrameLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="@drawable/photo1" 
      android:orientation="vertical" > 
    <FrameLayout 
       android:id="@+id/photo2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" > 

    </FrameLayout> 
    <Fragment> 

</Fragment> 
    </FrameLayout> 

И я хочу, чтобы изменить эту Фото2 FrameLayout.

public void setScreenSize() { 
    Display display = getWindowManager().getDefaultDisplay(); 
    FrameLayout layout = (FrameLayout) findViewById(R.id.photo2); 
    int screen_height = display.getHeight(); 
    screen_height = (int) (0.60*screen_height); 
    LayoutParams parms = (LayoutParams) layout.getLayoutParams(); 
    parms.height = screen_height; 
    } 

К сожалению, это не сработает, и я не знаю почему.

+0

ты найти ответ – PriyankaChauhan

ответ

1

Вы устанавливаете высоту назад в макет?

public void setScreenSize() { 
    Display display = getWindowManager().getDefaultDisplay(); 
    FrameLayout layout = (FrameLayout) findViewById(R.id.photo2); 
    int screen_height = display.getHeight(); 
    screen_height = (int) (0.60*screen_height); 
    LayoutParams parms = (LayoutParams) layout.getLayoutParams(); 
    parms.height = screen_height; 
    // Set it back. 
    layout.setLayoutParams(parms); 
} 
0

Если вы хотите изменить размер FrameLyaout программно, скопируйте и вставьте этот код, его рабочий 100%.

FrameLayout frame1 = (FrameLayout) findViewById(R.id.framelayout1); 
frame1.getLayoutParams().height =460; 
frame1.getLayoutParams().width = 350; 
frame1.requestLayout(); 
+0

я попытался выше код, но не работает в моем случае – PriyankaChauhan

+0

вы можете поделиться мне код –

+0

actualImageBitmap = BitmapFactory.decodeFile (новый файл (Datas.received_uri.getPath()). getAbsolutePath(), опции); ImageViewHeight = options.outHeight; ImageViewWidth = options.outWidth; img_baseview.setScaleType (ImageView.ScaleType.MATRIX); canvasView.getLayoutParams(). Height = ImageViewHeight; canvasView.getLayoutParams(). Width = ImageViewWidth; canvasView.requestLayout(); – PriyankaChauhan

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