我的手机是有刘海的,进入Unity界面后,它直接完全全屏了,导致刘海部分挡住了部分内容(正好我在那里放了几个按钮),需要做一个Header,高度根据刘海自动调整。
一、自动调整标题高度
参考:Android 坐标总结
//获取状态栏高度
public static float getStatusBarHeight(Context context) {
int height = 0;
try {
Resources resources = context.getResources();
int resourceId = resources.getIdentifier("status_bar_height", "dimen","android");
height = resources.getDimensionPixelSize(resourceId);
} catch (Exception e) {
e.printStackTrace();
}
return height;
}
在Activity的Create里面设置
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_unity_video_play);
LinearLayout llUnityHeader=findViewById(R.id.llUnityHeader);//Header
ViewGroup.LayoutParams lp=llUnityHeader.getLayoutParams();
lp.height=(int) MeasureUtil.getStatusBarHeight(this);
llUnityHeader.setLayoutParams(lp);
}
二、自动调整字体大小
要用到自动调整字体大小的TextView,因为我要修改LinnearLayout的高度,要让里面的TextView相应的调整字体大小,充满内容。
参考1:Android自定义TextView根据控件高度和宽度,解决字体适配问题
https://github.com/AndroidDeveloperLB/AutoFitTextView
结论来看,它的例子有效果,但是我不知道怎样拿来用。
我需要的是界面上把TextView改成AutoTextView后,自动就调整的,不用任何其他代码的。
github上也找了其他的,居然没有我要的。
-------------------------------------------------------
参考2:Android 设置TextView自动调整字体大小
结论来说,Android自己的TextView已经支持了,不需要另外弄其他的东西,加个android:autoSizeTextType="uniform"就好了。
从开始到知道花了60分钟,我现在学过的Android知识只有LinearLayout和RelativeLayout,后面的教程都还没看。