我是法国人,对不起我的英语。。。
我想做一个chromakey应用程序(这个算法也可以),但是当我在分层表面视图和ui上遇到问题时。
我想说的是:
顶层-->ui层(frameview+fragment)
中间-->chromakey层(opencv surfaceview)
底部-->背景(surfaceview)
如果我在中间层设置setzorderontop(true),我有一个透明的中间层,bootom层显示中间alpha。但是ui层在后面。。。
如果我在中间层设置setzordermediaoverlay(true),这个层是不透明的(黑色背景),底层是隐藏的。但用户界面在上面。。。
我尝试了许多配置,我在网上搜索解决它,但我没有找到。。。。
我尝试在一个surfaceview中手动实现合并这两层,但是当我调用utils.bitmaptomat(来自opencvsdk)时,处理时间增加了很多(从10ms到130ms,没有alpha合并…)。
你知道如何确认得到一个正确的层次(背景(底部)->色彩->用户界面(顶部))?mediaoverlay不透明是正常的吗?
谢谢
ps:我试着用一个经典的surfaceview来代替opencvsurafce视图,我得到了同样的结果。ps2:我所有的surfaceview都使用rgba\u8888格式。
ps3:我所有的surfaceview和ui视图都托管在framelayout中
ps4:下面是一个简单的问题示例:
主活动.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SurfaceView sv = findViewById(R.id.middle);
sv.setZOrderMediaOverlay(true);
sv.getHolder().setFormat(PixelFormat.RGBA_8888);
sv.setBackground(getResources().getDrawable( android.R.drawable.arrow_up_float));
}
}
活动\u main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<SurfaceView
android:id="@+id/bottom"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000" />
<SurfaceView
android:id="@+id/middle"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/button2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="920px"
android:gravity="center_horizontal|center_vertical"
android:text="Button" />
</LinearLayout>
</FrameLayout>
结果:
暂无答案!
目前还没有任何答案,快来回答吧!