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" />

标准互联(450元)襄阳电信100G防御服务器 10M独立带宽

目前在标准互联这边有两台香港云服务器产品,这不看到有通知到期提醒才关注到。平时我还是很少去登录这个服务商的,这个服务商最近一年的促销信息比较少,这个和他们的运营策略有关系。已经从开始的倾向低价和个人用户云服务器市场,开始转型到中高端个人和企业用户的独立服务器。在这篇文章中,有看到标准互联有推出襄阳电信高防服务器100GB防御。有三款促销方案我们有需要可以看看。我们看看几款方案配置。型号内存硬盘IP...

香港2GB内存DIYVM2核(¥50月)香港沙田CN2云服务器

DiyVM 香港沙田机房,也是采用的CN2优化线路,目前也有入手且在使用中,我个人感觉如果中文业务需要用到的话虽然日本机房也是CN2,但是线路的稳定性不如香港机房,所以我们在这篇文章中亲测看看香港机房,然后对比之前看到的日本机房。香港机房的配置信息。CPU内存 硬盘带宽IP价格购买地址2核2G50G2M1¥50/月选择方案4核4G60G3M1¥100/月选择方案4核8G70G3M4¥200/月选择...

GeorgeDatacenter:洛杉矶/达拉斯/芝加哥/纽约vps云服务器;2核/8GB/250GB/2TB流量/1Gbps端口,$84/年

georgedatacenter怎么样?GeorgeDatacenter是一家2017年成立的美国商家,正规注册公司(REG: 10327625611),其实是oneman。现在有优惠,有几款特价VPS,基于Vmware。支持Paypal付款。GeorgeDatacenter目前推出的一款美国vps,2核/8GB内存/250GB NVMe空间/2TB流量/1Gbps端口/Vmware/洛杉矶/达拉...

match_parent为你推荐
最好的翻译网站求最好的翻译网站和软件listviewitem安卓如何添加Listview的item?国家法规数据库在哪里可以找到比较全面的法律法规更新的信息?pat是什么格式photoshop填充图案是pat格式,需用什么软件打开?请高人指点,谢谢~shoujiao求【叫兽】的简介云输入法QQ云输入法怎样进行中英文切换?怎样删除聊天记录如何删除聊天空间导航怎么把空间的导航变成只有留言板跟相册flex是什么这些b365m和b360m什么意思如何查看qq特别关心我的人怎么在QQ里查看自己有没有被设为特别关心?
查询ip地址 阿云浏览器 堪萨斯服务器 哈喽图床 回程路由 国外免费空间 中国特价网 电子邮件服务器 bgp双线 vip购优惠 免费高速空间 中国电信宽带测速网 华为云服务登录 华为云建站 中国域名 贵阳电信 空间申请 开心online vim g6950 更多