我一直在寻找一些提及这一点,但我找不到任何实质性的信息.有没有办法改变Swing组件的z顺序,或者至少改变绘制顺序,使它们看起来高于其他组件?
我创建了一个扩展popupwindow的类.它的构造函数看起来如下所示
super(builder.context.get());
this.setWindowLayoutMode(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
setFocusable(true);
setBackgroundDrawable(new BitmapDrawable());
setTouchInterceptor(onTouchListener);
FrameLayout frameLayout = new FrameLayout(builder.context.get());
LayoutInflater inflater = (LayoutInflater) builder.context.get().getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
View overlayBase = inflater.inflate(R.layout.tutorial_view_items, null, false);
frameLayout.addView(builder.backgroundView);
frameLayout.addView(overlayBase);
setContentView(frameLayout);
Run Code Online (Sandbox Code Playgroud)
onTouchListener如下所示:
private OnTouchListener onTouchListener = new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
Log.d(TAG, "Received");
if (Math.pow(x - coordinates[0], 2) + Math.pow((y - coordinates[1]), 2) < Math.pow(radius, 2)) {
Log.d(TAG, "bubbled through");
return false;
}
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
我打电话来实际显示弹出窗口 SomePopupWindow.showAtLocation(SomeActivity.getWindow().getDecorView().getRootView(), …
我想知道是否可以更改共享元素转换的z顺序?看:
我有一个图像布局,填满整个屏幕.图像前面是一个文本框,显示图像的标题.如果我点击文本框,则会开始转换到详细信息活动.因此,我实现了一个共享元素转换,其中全屏图像在详细视图中设置为较小版本的自身.下图说明了这种行为.
我现在的问题是,在两个活动中都是文本框,它们位于共享元素图像之上.如果我从概述到详细活动,我会在共享元素转换完成后看到带有数字的圆圈文本框.我想将带有数字的文本框放在共享元素转换之上,这样我也可以在这个视图元素上做一个动画.
关于如何解决这个问题的任何想法?
animation android transition z-order shared-element-transition
我想设置我在Objective-C中创建的精灵的Z顺序,特别是在Cocos2D中.
这是我在尝试构建以下代码时遇到的错误:
CCSprite *mySprite = [CCSprite spriteWithFile:@"Image.png" rect:CGRectMake(0, 0, 96, 24)];
mySprite.zOrder = 0;
Run Code Online (Sandbox Code Playgroud)
...220: error: object cannot be set - either readonly property or no setter found
Z-Order必须能够以某种方式设置 - 它是否只能在实例化的行上设置而不是在创建之后设置?我是否必须为CCSprite的属性创建setter方法?为什么它不会有这些方法?
像许多其他人一样,我试图在相机预览(使用SurfaceView)上绘制3D对象(使用GLSurfaceView),并在顶部放置一些按钮.我实际上有一个原型工作,但我无法让onResume正常工作.在简历之后,GLSurfaceView会留在后面并且不再可见.我知道它正在工作,因为如果我从布局中删除SurfaceView,我可以看到绘图很好.
目标是Nexus One,运行库存2.3.3 ROM.
这是布局xml:
<com.example.cameratest.GLPreview
android:id="@+id/cubes"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<com.example.cameratest.Preview
android:id="@+id/camera"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/buttongroup"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_gravity="right" android:gravity="center">
<Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/buttonClose"></Button>
<Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/buttonMode"></Button>
<Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/buttonCameraInfo"></Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
<merge><code>
所有这些都包含在一个Preview块中,但出于某种原因,我无法将其包含在上面的SurfaceView列表中.setZOrderMediaOverlay()是扩展GLSurfaceView和实现相机预览逻辑的类.
这在活动启动时工作正常.在我启动另一个活动(例如,按下其中一个按钮)并完成该活动后,主活动将恢复,但3D对象不再可见.
我发现这个讨论的地方setZOrderMediaOverlay()有助于解决这个z排序问题.此外,setZOrderMediaOverlay()的Android文档说"在将表面视图的包含窗口附加到窗口管理器之前"应该调用此函数.我不知道如何解释该语句,因此我将调试语句放在代码中以查看事件序列.这是onResume()代码的样子:
public class GLPreview extends GLSurfaceView
{
private static final String TAG = "GLPreview";
public GLPreview(Context context, AttributeSet attrs)
{
super(context, …Run Code Online (Sandbox Code Playgroud) 我正在维护一个最初用Delphi 7编写并移植到Delphi XE的应用程序.
使用Windows 7,我们遇到了一些问题,比如主窗口下出现的模态窗口以及最终无法与程序交互,因为用户需要与模态窗体进行交互,这是不可能的,因为它位于主窗口下面.
为了避免这个问题,我将项目的MainFormOnTaskBar属性更改为True(旧项目没有此属性),现在我继续使用相同的项目.阅读文档我发现了新的Form属性PopupParent.如果我将MainFormOnTaskBar设置为True,是否必须使用此属性?还有另一个解决这个问题的方法吗?
我的应用程序目前如下所示.Buttona RelativeLayout中有三个s ,中间按钮左右边距为负,与其他两个按钮重叠.
问题:当我单击左侧或右侧按钮时,它会到达前景一秒钟并重叠中间按钮,这看起来非常难看.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<Button
android:id="@+id/voices"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:onClick="clickVoices"
android:background="#333"
android:textColor="#fff"
android:text="@string/main_voices" />
<Button
android:id="@+id/chat"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:onClick="clickChat"
android:background="#333"
android:textColor="#fff"
android:text="@string/main_chat" />
<Button
android:id="@+id/record"
android:layout_width="60dp"
android:layout_height="100dp"
android:clickable="true"
android:onClick="clickRecord"
android:scaleType="centerInside"
android:src="@drawable/record"
android:text="Record"
android:layout_toRightOf="@+id/voices"
android:layout_toLeftOf="@+id/chat"
android:layout_marginLeft="-20dp"
android:layout_marginRight="-20dp"
android:layout_marginTop="-30dp"
android:background="@drawable/round_button"
android:paddingTop="30dp"
android:layout_marginBottom="10dp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 最近在研究android中的webrtc。
我想单击SurfaceView A 使其全屏,而另一个SurfaceView B 变小,或者单击 B。但我发现很难在运行时更改两个不同 SurfaceView 的 z 顺序。
这是我的布局
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:showIn="@layout/app_bar_main">
<org.webrtc.PercentFrameLayout
android:id="@+id/remote_video_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<org.webrtc.SurfaceViewRenderer
android:id="@+id/remote_video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</org.webrtc.PercentFrameLayout>
<org.webrtc.PercentFrameLayout
android:id="@+id/local_video_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<org.webrtc.SurfaceViewRenderer
android:id="@+id/local_video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:keepScreenOn="true" />
</org.webrtc.PercentFrameLayout>
Run Code Online (Sandbox Code Playgroud)
PercentFrameLayout 是 ViewGroup 的子类,用于测量屏幕百分比。
我尝试在运行时使用 setZOrderMediaOverlay 但失败了。我发现SDK说
请注意,必须在将表面视图的包含窗口附加到窗口管理器之前设置此项。
那么这是否意味着我无法在运行时更改SurfaceView z 顺序?或者有什么办法可以破解它吗?
对不起,我的英语不好。
编辑1 SurfaceViewRender和PercentFrameLayout
都来自库,SurfaceViewRender是SurfaceView的子类。
这是一个片段,用于重现我的示例图像:
import pandas as pd
import numpy as np
import seaborn as sns
np.random.seed(42)
df = pd.DataFrame(np.random.rand(10,2), columns=['x', 'y'])
df['label'] = ['cat', 'mouse', 'dog', 'mouse', 'cat', 'cat', 'mouse', 'mouse','dog', 'cat']
sns.pairplot(df, hue='label');
Run Code Online (Sandbox Code Playgroud)
它生成以下seaborn对图,以及一些虚拟数据:
在右上图中,“狗”类别的一个标记位于“鼠标”类别的覆盖标记下方。
我可以以某种方式更改散点图标记的 z 顺序,以便“狗”类别的所有标记在顶部最清晰可见吗?
编辑:我已经尝试过hue_order=['mouse', 'cat', 'dog']和hue_order=['dog', 'mouse', 'cat'],但它们只影响图例和颜色中的顺序。不是散点图中标记的 z 顺序。
我正在学习Databricks,我有一些关于z-order 和partitionBy 的问题。当我阅读这两个函数时,听起来非常相似。这两个函数都以某种方式对数据进行分组,以加速读取操作。另外,partitionBy 看起来很适合连接操作,但我真的不明白当我只想读取数据时应该使用什么函数。你能告诉我应该如何考虑这两个函数才能正确使用它吗?
z-order ×10
android ×5
surfaceview ×2
animation ×1
apache-spark ×1
apprtcdemo ×1
button ×1
components ×1
databricks ×1
delphi ×1
delphi-xe ×1
delta-lake ×1
forms ×1
java ×1
objective-c ×1
overlap ×1
pairplot ×1
pandas ×1
partitioning ×1
python ×1
seaborn ×1
swing ×1
transition ×1
webrtc ×1
windows-7 ×1