match_parentGLSurfaceView 为什么不能在XML里定义

match_parent  时间:2021-06-16  阅读:()

toolbar中为什么调用不了setSupportActionBar

首先使用 Toolbar 来代替ActionBar ,这样我们就能够把ActionBar嵌入到我们的View体系中,然后我们"禁用"系统的status bar,由 DrawerLayout 来处理status bar,最后抽屉部分往上移,或者裁剪掉status bar那一部分。

  控制Status bar   在你的values-v21里面添加新的主题,并设置一下属性:   values-v21/themes.xml   <style name="AppTheme">   <item name="android:windowDrawsSystemBarBackgrounds">true</item>   <item name="android:statusBarColor">@android:color/transparent</item>   </style>   这里解释一下:   windowDrawsSystemBarBackgrounds ,将它设置为true,系统将在你的window里面绘制status bar,默认为 TRUE ,之所以要写出来是因为你的theme有可能是继承过来的,确保为true。

(在这里小插曲一下,因调试时,总以为注释了这段代码就以为是false,程序员思维害苦了我。

另外从命名来看,Android把它称为system bar,可能是为了与能被我们处理的status bar区分开而做的改变。

)   statusBarColor 设置为透明是因为我们不再需要系统的status bar,因为我们无法控制它的位置,后面我们将交由 DrawerLayout 来处理。

  使用DrawerLayout   首先,你的布局文件应该是和这个类似的:   <android.support.v4.widget.DrawerLayout   xmlns:android="url"   android:id="@+id/my_drawer_layout"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:fitsSystemWindows="true">   <!-- Your normal content view -->   <LinearLayout   android:layout_width="match_parent"   android:layout_height="match_parent"   android:orientation="vertical">   <!-- We use a Toolbar so that our drawer can be displayed   in front of the action bar -->   <android.support.v7.widget.Toolbar   android:id="@+id/my_awesome_toolbar"   android:layout_height="wrap_content"   android:layout_width="match_parent"   android:minHeight="?attr/actionBarSize"   android:background="?attr/colorPrimary" />   <!-- The rest of your content view -->   </LinearLayout>   <!-- The navigation drawer -->   <ScrimInsetsFrameLayout xmlns:android="rul"   xmlns:app="url"   android:layout_width="304dp"   android:layout_height="match_parent"   android:layout_gravity="left"   android:background="@android:color/white"   android:elevation="10dp"   android:fitsSystemWindows="true"   app:insetForeground="#4000">   <!-- Your drawer content -->   </ScrimInsetsFrameLayout>   </android.support.v4.widget.DrawerLayout>   在这里布局里面我们用到了一个的开源类 ScrimInsetsFrameLayout ,它的主要作用就是利用 fitsSystemWindows 的回调方法 fitSystemWindows(Rect insets) 来获取status bar的大小,然后调整画布已达到去掉status bar的效果,所以我们需要在ScrimInsetsFrameLayout 下设置 fitsSystemWindows 为true。

当然你也可以不使用这个类,而改用 layout_marginTop 属性来达到效果。

  insetForeground 这个属性是ScrimInsetsFrameLayout自带的,表示插入区域的前景色,我们设置为带透明的黑色#4000。

别忘了使用这个属性需要添加如下代码到attrs.xml里:   values/attrs.xml   <declare-styleable name="ScrimInsetsView">   <attr name="insetForeground" format="reference|color" />   </declare-styleable>   自此,我们已经实现了将DrawerLayout抽屉的那一部分显示在 Toolbar 和systembar(为了和下面的status bar区分,我们称为system bar)之间了,可是system bar的颜色被我们设置了透明,所以我们接下来要改变status bar的颜色。

  改变Status bar的颜色   你可能已经注意到刚才的布局里面 DrawerLayout 的 fitsSystemWindows 属性设置了为true,这是因为我们要在代码里面使用了 DrawerLayout 设置status bar颜色的方法:   // 在这里我们获取了主题暗色,并设置了status bar的颜色   TypedValue typedValue = new TypedValue();   getTheme().resolveAttribute(R.attr.colorPrimaryDark, typedValue, true);   int color = typedValue.data;   // 注意setStatusBarBackgroundColor方法需要你将fitsSystemWindows设置为true才会生效   DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.my_drawer_layout);   drawerLayout.setStatusBarBackgroundColor(color);   使用ToolBar来代替ActionBar   在代码里面这样设置:   Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);   setSupportActionBar(toolbar);

popwindow怎么设置背景颜色

// 实例化一个ColorDrawable颜色 ColorDrawable dw = newColorDrawable(mContext.getResources().getColor(R.color.blue)); // 设置弹出窗体的背景 this.setBackgroundDrawable(dw); setWidth(ViewGroup.LayoutParams.MATCH_PARENT); setHeight(ViewGroup.LayoutParams.MATCH_PARENT); //通常popwindow中会加上以下语句 setTouchable(true); setFocusable(true); 使用以上方法设置了背景颜色后,在popwindow的布局文件中注意不要另外再设置整个popwindow的背景颜色,否则会两个颜色重叠,而且会有闪烁效果

布局文件中fill_parent和match_parent有什么区别?

1)fill_parent设置一个构件的布局为fill_parent将强制性地使构件扩展,以填充布局单元内尽可能多的空间。

这跟Windows控件的dockstyle属性大体一致。

设置一个顶部布局或控件为fill_parent将强制性让它布满整个屏幕。

2)match_parent Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用。

那么如果考虑低版本的使用情况你就需要用fill_parent了

px,dp和sp,这些单位有什么区别

px: 即像素,1px代表屏幕上一个物理的像素点; px单位不被建议使用,因为同样100px的图片,在不同手机上显示的实际大小可能不同 偶尔用到px的情况,是需要画1像素表格线或阴影线的时候,用其他单位如dp会显得模糊。

dp: 这个是最常用但也最难理解的尺寸单位。

它与“像素密度”密切相关,所以首先我们解释一下什么是像素密度。

假设有一部手机,屏幕的物理尺寸为1.5英寸x2英寸,屏幕分辨率为240x320,则我们可以计算出在这部手机的屏幕上,每英寸包含的像素点的数量为240/1.5=160dpi(横向)或320/2=160dpi(纵向),160dpi就是这部手机的像素密度,像素密度的单位dpi是Dots Per Inch的缩写,即每英寸像素数量。

横向和纵向的这个值都是相同的,原因是大部分手机屏幕使用正方形的像素点。

不同的手机/平板可能具有不同的像素密度,例如同为4寸手机,有480x320分辨率的也有800x480分辨率的,前者的像素密度就比较低。

Android系统定义了四种像素密度:低(120dpi)、中(160dpi)、高(240dpi)和超高(320dpi),它们对应的dp到px的系数分别为0.75、1、1.5和2,这个系数乘以dp长度就是像素数。

例如界面上有一个长度为“80dp”的图片,那么它在240dpi的手机上实际显示为80x1.5=120px,在320dpi的手机上实际显示为80x2=160px。

如果你拿这两部手机放在一起对比,会发现这个图片的物理尺寸“差不多”,这就是使用dp作为单位的效果, dip: 与dp完全相同,只是名字不同而已。

在早期的Android版本里多使用dip,后来为了与sp统一就建议使用dp这个名字了。

sp: 与缩放无关的抽象像素(Scale-independent Pixel)。

sp和dp很类似但唯一的区别是,Android系统允许用户自定义文字尺寸大小(小、正常、大、超大等等),当文字尺寸是“正常”时1sp=1dp=0.00625英寸,而当文字尺寸是“大”或“超大”时,1sp>1dp=0.00625英寸。

类似我们在windows里调整字体尺寸以后的效果——窗口大小不变,只有文字大小改变。

还有几个比较少用到的尺寸单位: mm: 即毫米; in: 即英寸,1英寸=2.54厘米(约); pt: 1pt=1/72英寸=0.035厘米; 最佳实践,文字的尺寸一律用sp单位,非文字的尺寸一律使用dp单位。

例如textSize="16sp"、layout_width="60dp";偶尔需要使用px单位,例如需要在屏幕上画一条细的分隔线时: <View layout_width="match_parent" layout_height="1px"/>

GLSurfaceView 为什么不能在XML里定义

<android.opengl.GLSurfaceView android:id="@+id/glsurfaceview" android:layout_width="match_parent" android:layout_height="match_parent" />

Hostodo独立日提供四款特价年付VPS套餐 最低年付$13.99

前天,还有在"Hostodo商家提供两款大流量美国VPS主机 可选拉斯维加斯和迈阿密"文章中提到有提供两款流量较大的套餐,这里今天看到有发布四款庆祝独立日的七月份的活动,最低年付VPS主机13.99美元,如果有需要年付便宜VPS主机的可以选择商家。目前,Hostodo机房可选拉斯维加斯和迈阿密两个数据中心,且都是基于KVM虚拟+NVMe整列,年付送DirectAdmin授权,需要发工单申请。(如何...

CloudCone(12.95美元/月CN2 GT线路,KVM架构1 Gbps带宽

整理一下CloudCone商家之前推送的闪购VPS云服务器产品,数量有限,活动推出可能很快机器就售罄了,有需要美国便宜VPS云服务器的朋友可以关注一下。CloudCone怎么样?CloudCone服务器好不好?CloudCone值不值得购买?CloudCone是一家成立于2017年的美国服务器提供商,国外实力大厂,自己开发的主机系统面板,CloudCone主要销售美国洛杉矶云服务器产品,优势特点是...

Vultr再次发布充值多少送多少活动

昨天我们很多小伙伴们应该都有看到,包括有隔壁的一些博主们都有发布Vultr商家新的新用户注册福利活动。以前是有赠送100美元有效期30天的,这次改成有效期14天。早年才开始的时候有效期是60天的,这个是商家行为,主要还是吸引到我们后续的充值使用,毕竟他们的体验金赠送,在同类商家中算是比较大方的。昨天活动内容:重新调整Vultr新注册用户赠送100美元奖励金有效期14天今天早上群里的朋友告诉我,两年...

match_parent为你推荐
素数算法有能写出所有素数的公式吗webservice框架什么是webservice,什么情况下使用,如何使用云输入法QQ云输入法怎样调整候选词的个数?java程序员招聘java工程师待遇如何cursorlocation如何用ENVI把不同图像中的相同地点的某个像素点的值读出来。按时间把这个点的值连起来,。谢谢好人。东兴证券网站东兴证券超强版下载网页背景音乐代码网站背景音乐HTML代码android权限大全android 6.0哪些权限需要请求dawn是什么意思冰火是什么意思取英文名的网站谁知道Debbie Lynne Cindy Carol Barbara 这几个英文名字的来历,说个可以查的网站也行,谢
免费域名 出租服务器 highfrequency 多线空间 优酷黄金会员账号共享 网通服务器 shuang12 vul qq金券 学生服务器 免费网络空间 云销售系统 中国电信宽带测速 香港ip 美国十大啦 在线tracert 火山互联 paypal兑换 赵蓉 远程主机强迫关闭了一个现有的连接 更多