小编Kam*_*ood的帖子

支持所有Android设备需要哪些布局文件夹?

我正在开发一个计算器应用程序,它具有纵向模式的相对布局.所有按钮和TextView都放置在这个单一的相对布局中,并且相同的相对布局用于Land模式.我已经挖掘了近15天的网络,但没有发现任何相关内容.我的应用程序也支持平板电脑.MinSDKVer为14,Target为v21.

目前我正在尝试这些Layouts文件夹

1:layout-sw400dp(用于Note 3和Mate 7)

2:layout-sw600dp(适用于7"平板电脑)

3:layout-sw720dp(用于8.9"和10"平板电脑)

4:布局小LDPI

5:布局正常LDPI

6:布局正常MDPI

7:layout-large-mdpi(适用于屏幕> 5"的480×800手机,如Pantech Sky Vega Note)

8:布局正常HDPI

9:layout-large-hdpi(适用于Galaxy Note 2,Galaxy Note和Galaxy Mega)

10:布局正常xhdpi

11:布局正常xxhdpi

12:layout-large-xxhdpi(适用于Galaxy Note 4)

13:layout-normal-xxxhdpi(适用于Nexus 6和其他QFHD手机)

所有这些布局都有陆地模式.

放置时出现问题(layout-sw400dp).Nexus 6,Note 4,Note 2,Galaxy Mega和Large 480×800手机开始使用这种布局而不是预期的布局.

发生这种情况是因为swdp的优先级高于layout-normal-xxxx或layout-large-xxxx.

注3和Mate 7是400dpi设备,这就是我放置layout-sw400dp的原因.在此之前,除了Note 3和Mate 7之外,所有设备都工作正常.

其他问题是具有540×960分辨率的设备.

我试过layout-320dp.通过使用此xhdpi设备和xxhdpi设备开始使用此布局.

我也试过这些布局为540×960但是这些甚至在为layout-long-port-800×480制作seprate文件夹后也无法工作.

1:布局h960dp-w540dp

2:布局长端口960×540

3:布局正常-960×540

我通过创建具有实际规格的不同设备从Android Virtual Device Manager中读取所有屏幕.

我尝试在java文件中手动设置540×960设备的布局并成功但我不想这样做,我也不想使用线性布局.

我已经彻底研究了"Android不同的屏幕支持和提供资源".

请告诉布局所有必需文件夹的名称,以支持所有Android设备或使用java执行此操作的任何其他有效方法.

我已经上传了Mediafire上的所有资源文件,你可以下载Calculator Layout.zip

任何建议和解决方案将不胜感激提前感谢

抱歉英语,因为它不是我的母语.

android relativelayout android-layout

9
推荐指数
1
解决办法
6126
查看次数

从数学表达式中提取操作数的正则表达式

没有关于SO的问题解决了我的特殊问题.我对正则表达的了解很少.我正在使用Regex Class在Java中构建表达式解析器.我想从表达式中提取操作数,参数,运算符,符号和函数名称,然后保存到ArrayList.目前我正在使用这种逻辑

String string = "2!+atan2(3+9,2+3)-2*PI+3/3-9-12%3*sin(9-9)+(2+6/2)" //This is just for testing purpose later on it will be provided by user
List<String> res = new ArrayList<>();
Pattern pattern = Pattern.compile((\\Q^\\E|\\Q/\\E|\\Q-\\E|\\Q-\\E|\\Q+\\E|\\Q*\\E|\\Q)\\E|\\Q)\\E|\\Q(\\E|\\Q(\\E|\\Q%\\E|\\Q!\\E)) //This string was build in a function where operator names were provided. Its mean that user can add custom operators and custom functions 
Matcher m = pattern.matcher(string);
int pos = 0;
while (m.find()) 
{
    if (pos != m.start()) 
    {
        res.add(string.substring(pos, m.start()))
    }
    res.add(m.group())
    pos = m.end();
}
if (pos != string.length()) …
Run Code Online (Sandbox Code Playgroud)

java regex parsing mathematical-expressions

6
推荐指数
1
解决办法
943
查看次数