Reputation: 2681
I have used this code to change videoview during rumtime
So, I am using this code
VideoView video;
DisplayMetrics dm;
dm=new DisplayMetrics();
this.getWindowManager().getDefaultDisplay().getMetrics(dm);
height=dm.heightPixels;
width=dm.widthPixels;
video.setMinimumHeight(height);
video.setMinimumWidth(width);
and on clicking of Menu item I am using this
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case SMALL:
video.setMinimumHeight(height/2);
video.setMinimumWidth(width/2);
Toast.makeText(getApplicationContext(), "Small called", Toast.LENGTH_LONG).show();
break;
case DEFAULT:
video.setMinimumHeight(height);
video.setMinimumWidth(width);
Toast.makeText(getApplicationContext(), "Default called", Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
But Still it is not getting changed.... Can anybody help??
Upvotes: 0
Views: 11646
Reputation: 3966
You need to use video.layout(left, top, right, bottom); for your purpose.
Can you try this once.
public boolean onOptionsItemSelected(MenuItem item)
{
switch(item.getItemId())
{
case SMALL:
// YOU CAN CREATE LEFT, TOP, RIGHT, BOTTOM FOR YOUR VIEW AND SET.
int left = video.getLeft();
int top = video.getTop();
int right = left + (width / 2);
int botton = top + (height / 2);
video.layout(left, top, right, bottom);
Toast.makeText(getApplicationContext(), "Small called", Toast.LENGTH_LONG).show();
break;
case DEFAULT:
// YOU CAN CREATE LEFT, TOP, RIGHT, BOTTOM FOR YOUR VIEW AND SET.
int left = video.getLeft();
int top = video.getTop();
int right = left + (width);
int botton = top + (height);
video.layout(left, top, right, bottom);
Toast.makeText(getApplicationContext(), "Default called", Toast.LENGTH_LONG).show();
break;
}
return super.onOptionsItemSelected(item);
}
I think it should work.
Upvotes: 7