有没有办法提高速度glReadPixels?目前我这样做:
Gdx.gl.glReadPixels(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), GL20.GL_RGBA, GL20.GL_UNSIGNED_BYTE, pixels);
问题是它阻止渲染并且很慢.
我听说过Pixel Buffer Objects,但我不确定如何连接它以及它是否更快.
还有其他任何解决方案glReadPixels吗?
基本上,我想尽可能快地截取屏幕截图,而不会阻止下一个场景的绘制.
我想将用Qt编写的项目发布给Ubuntu/Linux用户.如果他们尝试执行构建版本,则会收到此错误消息,因为他们尚未安装Qt:
加载共享库时出错:libQt5Widgets.so.5:无法打开共享对象文件:没有这样的文件或目录
有没有办法将所有库添加libQt5Widgets.so.5到可执行文件所在的文件夹中,就像在Windows下一样qt.conf,您可以在其中指定Plugins文件夹?
我有以下观点:
Swift 代码如下所示:
struct TestView: View {
let options = [" ", "1", "2", "3", "4", "5", "6"]
@State var selectedIndex: Int = 0
var body: some View {
HStack(spacing: 0) {
Text("One")
Spacer()
Picker(selection: $selectedIndex, label: Text(options[selectedIndex])) {
ForEach(0 ..< options.count) {
Text(options[$0])
}
}
.background(Color.red)
.pickerStyle(MenuPickerStyle())
}
.padding(EdgeInsets(top: 0, leading: 16, bottom: 0, trailing: 16))
.background(Color.yellow)
}
}
Run Code Online (Sandbox Code Playgroud)
当点击红色方块时,选择器将被打开:
如何扩展红色矩形的触摸区域以包括整个黄色区域?
背景如何变暗,就像它在这里显示的一样?
我通常使用CoordinatorLayout和设置它BottomSheetBehavior.
android androiddesignsupport android-coordinatorlayout bottom-sheet
我正在体验新的QQuickWidget.我如何在QQuickWidget和C++之间进行交互?
C++
QQuickWidget *view = new QQuickWidget();
view->setSource(QUrl::fromLocalFile("myqml.qml"));
view->setProperty("test", 0);
myLayout->addWidget(view);
Run Code Online (Sandbox Code Playgroud)
QML
import QtQuick 2.1
Rectangle {
id: mainWindow
width: parent.width
height: parent.height
Text {
id: text
width: mainWindow.width
font.pixelSize: 20
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
text: test
}
}
Run Code Online (Sandbox Code Playgroud)
text: test 不起作用: ReferenceError: test is not defined
如何通过C++为我的QML文件提供一些属性?
是否也可以在C++中获取Text对象并更新其文本?
由于com.android.tools.build:gradle:1.3.0你会得到'flavorDimension' will be removed by Android Gradle Plugin 2.0, it has been replaced by 'dimension'.
这是我的构建文件:
的build.gradle
android {
flavorDimensions "store", "api"
productFlavors {
googleplay {
flavorDimension "store"
}
amazon {
flavorDimension "store"
}
pre21 {
flavorDimension "api"
}
post21 {
flavorDimension "api"
}
}
}
Run Code Online (Sandbox Code Playgroud) 我想从.pemJava中的字符串(文件)生成私钥.
private static final String test = "-----BEGIN RSA PRIVATE KEY-----\n" +
"MIIEpAIBAAKCAQEAvcCH8WsT1xyrZqq684VPJzOF3hN5DNbowZ96Ie//PN0BtRW2\n" +
// and so on
"-----END RSA PRIVATE KEY-----";
try {
String privKeyPEM = test.replace("-----BEGIN RSA PRIVATE KEY-----\n", "");
privKeyPEM = privKeyPEM.replace("-----END RSA PRIVATE KEY-----", "");
byte [] encoded = Base64.decode(privKeyPEM);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encoded);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey privKey = kf.generatePrivate(keySpec);
}
catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
最后一行(generatePrivate函数)抛出此异常:
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid parse error, not a sequence
at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(Unknown Source) …Run Code Online (Sandbox Code Playgroud) 我想拍摄屏幕.Libgdx提供了ScreenUtils类中定义的一些函数.
例如 final Pixmap pixmap = ScreenUtils.getFrameBufferPixmap(x, y, w, h);
我的问题是获取该信息大约需要1-3秒.在此期间,游戏循环被阻止,用户将其定义为滞后.
在ScreenUtils课堂内部,使用Gdx.gl.glReadPixels.如果我ScreenUtils.getFrameBufferPixmap在一个线程中运行该方法,没有延迟,但它以错误的方法捕获屏幕,这是合乎逻辑的,因为游戏循环运行并改变了东西.
是否有可能在线程的帮助下复制GL上下文或保存它并在稍后的时间点生成Pixmap?当然,复制/保存操作应该立即完成,否则我不会遗漏任何东西.
我ShapeRenderer用来将我的东西渲染到屏幕上.
我有一个工具栏和一个TabLayout以及一个包含在CollapsingToolbarLayout中的图像.这个gif几乎总结了一下:
https://raw.githubusercontent.com/vitovalov/TabbedCoordinatorLayout/master/art/demo.gif
这是XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapse_toolbar"
android:layout_width="match_parent"
android:layout_height="250dp"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/photo"
android:fitsSystemWindows="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="100dp"
android:gravity="top"
android:minHeight="?attr/actionBarSize"
app:layout_collapseMode="pin"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:titleMarginTop="15dp"/>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:layout_gravity="bottom"
app:tabIndicatorColor="@color/colorAccent"/>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
我想要实现的是,例如在Tab 2上,我不想让用户能够看到图像.因此,即使他试图将AppBarLayout拉下来,他也不应该在任何情况下看到图像.
调用appBarLayout.setExpanded(false);显示选项卡2会隐藏图像并将所有内容折叠回来.虽然当你按下AppBarLayout并向下滑动时,你可以恢复图像.情况并非如此.
我该如何防止这种行为?
我正在使用支持库的v23.1.1.对于图书馆的第22版,已经存在这个问题.但是,解决方法不再适用于版本23.
android ×4
c++ ×2
java ×2
qt ×2
abap ×1
bottom-sheet ×1
color-scheme ×1
der ×1
gradle ×1
ios ×1
libgdx ×1
opengl ×1
pem ×1
private-key ×1
qquickwidget ×1
rsa ×1
sublimetext ×1
sublimetext3 ×1
swiftui ×1
ubuntu ×1