我试图弄清楚如何通过Javascript获取设备屏幕的物理尺寸.到目前为止,我的结论是,它目前是不可能的,但我希望有人可以证明我错了:).
到目前为止,我已经尝试通过查找设备的DPI来获取此信息,但似乎没有办法在这里获得正确的值,因为我测试的所有设备(一些HDPI和XHDPI Android设备,iPhone4S,iPad 2和iPad 3)报告96DPI.
获得我尝试过的DPI的第一种方法是你可以在互联网上随处找到的方法:div用CSS宽度创建一个1in,得到它clientWidth或者offsetWidth你的DPI.不起作用,所有设备报告96.
第二种方法是使用分辨率媒体查询,类似于:
for (var i=90; i < 400; i++) {
if (matchMedia('(resolution: ' + i + 'dpi)').matches) {
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这是一个聪明的解决方案,但不幸的是,它也会返回96.
还有什么可以尝试的吗?
如何仅更改需要Dimension对象的组件的宽度或高度?目前我这样做:
jbutton.setPreferredSize(new Dimension(button.getPreferredSize().width, 100));
Run Code Online (Sandbox Code Playgroud)
但我觉得我做错了.如果有更好的方法,最好的方法是什么?
我想了解如何更好地在 Compose 项目中使用 dp 和 sp 值。我检查了几个开源 Compose 项目,其中大多数都对维度进行了硬编码。这绝对不是支持灵活性和不同屏幕尺寸的方法。我目前看到几个方法:
dimens.xml直接在调用 的 compose 函数中获取值dimensionResource()。dimens.xmlKotlin 类中 的值。例如:
class AppDimensions {
val paddingSmall: Dp
@Composable
get() = dimensionResource(R.dimen.padding_small)
...
}
Run Code Online (Sandbox Code Playgroud)
dimens.xml并实现自己的逻辑。例如:
class AppDimensions {
val paddingSmall = when(screenSize) {
Compact -> 10.dp
Medium -> 16.dp
Expanded -> 20.dp
else -> 10.dp
}
...
}
Run Code Online (Sandbox Code Playgroud)
我喜欢第三种变体,因为它看起来更灵活并且允许我们避免返回 XML。但这需要努力来支持。
但是,也许我们可以以更方便的方式使用它吗?
android dimension android-resources android-jetpack android-jetpack-compose
我想创建一个计算成员并按维度过滤它.这是工作示例:
(
[Policy].[Policy Status].&[Void],
[Policy].[Tran Type].&[Renewal],
[Measures].[FK Policy Distinct Count]
)
Run Code Online (Sandbox Code Playgroud)
但是,如果我想像这样过滤它
(
[Policy].[Policy Status].&[Void],
[Policy].[Policy Status].&[Policy],
[Measures].[FK Policy Distinct Count]
)
Run Code Online (Sandbox Code Playgroud)
比它不工作.它表示在元组中多次显示相同的层次结构.
另一件事是,如何排除行?这是个主意......
(
![Policy].[Policy Status].&[Void],
![Policy].[Policy Status].&[Policy],
[Measures].[FK Policy Distinct Count]
)
Run Code Online (Sandbox Code Playgroud) 我们知道Apple Watch有两种屏幕尺寸:38mm和42mm.本WKInterfaceDevice类提供一个名为读取的特性screenBounds.我写了一个扩展名WKInterfaceDevice,尝试添加一种方法来检测当前的设备类型.
import WatchKit
enum WatchResolution {
case Watch38mm, Watch42mm
}
extension WKInterfaceDevice {
class func currentResolution() -> WatchResolution {
let watch38mmRect = CGRectMake(0.0, 0.0, 136.0, 170.0)
let watch42mmRect = CGRectMake(0.0, 0.0, 156.0, 195.0)
let currentBounds = WKInterfaceDevice.currentDevice().screenBounds
if CGRectEqualToRect(currentBounds, watch38mmRect) {
return WatchResolution.Watch38mm
} else {
return WatchResolution.Watch42mm
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是检测Apple Watch尺寸的正确方法吗?我在Apple文档中缺少另一种方法吗?
是否可以在另一个维度中使用维度资源的引用?我的意思是这样的:
档案dimen.xml:
<dimen name="test1">18sp</dimen>
<dimen name="test2">@dimen/test1</dimen>
Run Code Online (Sandbox Code Playgroud) 我想在MySQL数据仓库中处理日期维度.(我是DW世界的新手)
我在google上进行了一些搜索,看到了很多表结构(大部分)日期维度,其中主键很简单UNSIGNED INTEGER.
为什么不使用DATE字段作为主键,因为使用MySQL它是3字节VS 4字节INTEGER?
例如:
CREATE TABLE dimDate
id INTEGER UNSIGNED NOT NULL PRIMARY AUTOI_NCREMENT,
date DATE NOT NULL,
dayOfWeek
...
Run Code Online (Sandbox Code Playgroud)
VS
CREATE TABLE dimDate
date DATE NOT NULL PRIMARY,
dayOfWeek
...
Run Code Online (Sandbox Code Playgroud) 假设我有两个四维向量(即a和b)如下:
a = {a1, a2, a3, a4}
b= {b1, b2, b3, b4}
Run Code Online (Sandbox Code Playgroud)
如何计算这些向量之间的欧几里德距离?
我很惊讶地看到吸气鬼height和width成员都有return类型double,尽管他们是int.此外,setSize具有双参数的方法具有以下定义:
/**
* Sets the size of this <code>Dimension</code> object to
* the specified width and height in double precision.
* Note that if <code>width</code> or <code>height</code>
* are larger than <code>Integer.MAX_VALUE</code>, they will
* be reset to <code>Integer.MAX_VALUE</code>.
*
* @param width the new width for the <code>Dimension</code> object
* @param height the new height for the <code>Dimension</code> object
*/
public void setSize(double width, double height) { …Run Code Online (Sandbox Code Playgroud) 在数据仓库中,我们有缓慢变化维度的概念.我只是想知道为什么没有"缓慢/快速变化的FACT"的行话,因为相同的Type1,Type 2度量可用于跟踪FACT表中的变化.