全新三星Galaxy S8和LG G6手机的纵横比为18:9.这与大多数Android设备支持的16:9的当前宽高比不同.如何处理现有Android应用程序或新创建的应用程序中的新宽高比.
我想使用getWidth()/ getHeight()来获取XML-Layout的宽度/高度.我读过我必须在方法onSizeChanged()中这样做,否则我会得到0(Android:获取屏幕分辨率/像素作为整数值).
但是我想在已经扩展Activity的类中做到这一点.所以我认为不可能让同一个类扩展View.
public class MyClass extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewGroup xml_layout = (ViewGroup) findViewById(R.id.layout_id);
TextView tv = new TextView(this);
tv = (TextView) findViewById(R.id.text_view);
int layout_height = xml_layout.getHeight();
int layout_width = xml_layout.getWidth();
}
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
//Error, because I need to use extends View for class, but I can't do it because I also need extends Activity to use onCreate
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用MyClass扩展Activity我可以使用onCreate但不能使用onSizeChanged.
如果我使用MyClass …