当前位置: 首页 > news >正文

网站主机名app拉新推广项目

网站主机名,app拉新推广项目,网站同时做竞价和优化可以吗,女生学网站建设好学吗平台 涉及主控: RK3566 Android: 11/13 问题 在使用GLSurfaceView播放视频的过程中, 增加了一个播放控制面板, 覆盖在视频上方. 默认隐藏setVisibility(View.INVISIBLE);点击屏幕再显示出来. 然而, 在RK3566上这个简单的功能却无法正常工作. 通过缩小视频窗口可以看到, 实际…

在这里插入图片描述

平台

涉及主控: RK3566
Android: 11/13

问题

在使用GLSurfaceView播放视频的过程中, 增加了一个播放控制面板, 覆盖在视频上方. 默认隐藏setVisibility(View.INVISIBLE);点击屏幕再显示出来. 然而, 在RK3566上这个简单的功能却无法正常工作. 通过缩小视频窗口可以看到, 实际UI是已经展示, 但是被GLSurfaceView 覆盖了.

在Pixel Android 13 上不存在这个问题

在这里插入图片描述
如上图 红色 框选区域, 显示不出来.

分析

后续测试发现问题复现需要2个条件:

  1. 覆盖层默认布局设置了隐藏: android:visibility="invisible"
  2. 布局中使用了SurfaceView / GLSurfaceView

参考代码:

布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/black"android:id="@+id/rlRoot"><RelativeLayout android:id="@+id/rlScreen"android:layout_width="match_parent"android:layout_height="match_parent"/><RelativeLayout android:id="@+id/rlMenu"android:layout_width="480dp"android:layout_height="320dp"android:layout_alignParentBottom="true"android:layout_centerHorizontal="true"android:layout_marginBottom="100dp"android:visibility="invisible"android:background="@drawable/selector_beauty_window_bg"><TextViewandroid:text="Overlay Menu"android:layout_centerInParent="true"android:layout_width="wrap_content"android:layout_height="wrap_content"/></RelativeLayout>
</RelativeLayout>

Activity文件


import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceView;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;import com.ansondroider.acore.BaseActivity;
import com.ansondroider.acore.media.VideoPlayer;
import com.ansondroider.apitester.gl.GLVideoView;import java.io.IOException;public class GlMenuOverlay extends BaseActivity {MediaPlayer mmp;GLVideoView glView;RelativeLayout rlScreen;RelativeLayout rlMenu;boolean playVideo = false;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.test_gl_menu_overlay);findViewById(R.id.rlRoot).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {showOrHideMenu();}});rlScreen = (RelativeLayout) findViewById(R.id.rlScreen);rlMenu = (RelativeLayout) findViewById(R.id.rlMenu);RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);if(playVideo) {glView = new GLVideoView(this);rlScreen.addView(glView, lp);}/*ImageView iv = new ImageView(this);iv.setImageResource(R.mipmap.ic_launcher);iv.setScaleType(ImageView.ScaleType.FIT_XY);RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);rlScreen.addView(iv, lp);*/VideoPlayer player = new VideoPlayer();SurfaceView texture = new SurfaceView(this);rlScreen.addView(texture, lp);player.setDisplay(texture);player.setDataSource("/sdcard/Movies/10012271.mp4");player.play();}void showOrHideMenu(){Log.d(TAG, "showOrHideMenu");rlMenu.setVisibility(rlMenu.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE);}@Overrideprotected void onStart() {super.onStart();if(playVideo) {mmp = new MediaPlayer();try {mmp.setDataSource("/sdcard/Movies/10012271.mp4");mmp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mediaPlayer) {glView.onVideoPrepared(mediaPlayer);}});mmp.prepare();mmp.setLooping(true);} catch (IOException e) {e.printStackTrace();}}}@Overrideprotected void onStop() {super.onStop();if(mmp != null){mmp.stop();mmp.release();}}
}

解决

在需要展示覆盖层的时候调用一次requestLayout, 比如:

    void showOrHideMenu(){Log.d(TAG, "showOrHideMenu");rlMenu.setVisibility(rlMenu.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE);////((RelativeLayout)findViewById(R.id.rlRoot)).requestLayout();rlMenu.requestLayout();}

调用父容器 rlRootrlMenu本身requestLayout 都可以

在这里插入图片描述

参考

在这里插入图片描述
Android自定义GLSurfaceView
SurfaceView、GLSurfaceView、SurfaceTexture、TextureView简单对比

http://www.yidumall.com/news/69274.html

相关文章:

  • 汕头做网站中国新闻
  • 有哪些网站可以做电子邀请函搜索引擎排名的三大指标
  • 自学网官网沈阳优化推广哪家好
  • 天元建设集团有限公司破产seo主要做什么
  • 设计师接单的网站免费seo免费培训
  • 环保网页设计素材seo快速排名利器
  • 网页模板下载哪个网站好百度关键词多少钱一个月
  • 电商公司的网站设计书深圳关键词推广排名
  • 网站建设说明书抖音代运营大概多少钱一个月
  • 网站建设 服务内容 费用全国新闻媒体发稿平台
  • 网站站开发 流量百度推广一级代理商名单
  • 个人网站域名怎么起微信推广朋友圈广告
  • 详情页设计理念一键优化清理手机
  • 小程序商城开发说明济南seo优化公司
  • 长春可做微网站的公司上海公关公司
  • 上海展台设计搭建seo 专业
  • 大智慧手机版官方下载网站seo基础
  • 网站不能自行备案吗会计培训班的费用是多少
  • 衢州 网站建设百度官网app下载
  • html模板网站推荐腾讯中国联通
  • 网站建设图片上传操作自创网站
  • 旅游网站模板psd谷歌搜索引擎seo
  • 化工企业网站模板 aspx厦门网络推广
  • 注册了域名怎样做网站推广关键词优化
  • 网站建设哪家售后做的好天津网站优化公司
  • 正规的网店平台有哪些无锡网站建设方案优化
  • 买个购物网站即时热榜
  • 八方建设集团有限公司网站百度手机网页版入口
  • 济宁网站建设 帮站华为手机软文范文300
  • 厦门外贸商城网站建设百度安装免费下载