首页 > 其他分享 >搭建直播平台,自定义VIew实现设置防截屏、添加水印

搭建直播平台,自定义VIew实现设置防截屏、添加水印

时间:2023-05-12 14:27:00浏览次数:50  
标签:layout 自定义 labels 水印 防截屏 import android VIew

搭建直播平台,自定义VIew实现设置防截屏、添加水印

1.activity代码:MarkViewActivity

 


package com.zdmtech.backgroundtextdemo;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.RelativeLayout;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
/**
 * 设置防截屏、添加水印
 * */
public class MarkViewActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置防截屏
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);
        setContentView(R.layout.activity_main);
        initView();
    }
    public void initView() {
        RelativeLayout reView = findViewById(R.id.reView);
        // 添加水印
        List<String> labels = new ArrayList<>();
        labels.add("你");
        labels.add("我");
        labels.add("他");
        reView.setBackground(new MarkBgView(MarkViewActivity.this, labels, -30, 14));
    }
}

2.布局xml

 


<?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:id="@+id/reView"
    android:orientation="vertical">
    <TextView
        android:id="@+id/tcContent"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="防截屏" />
</RelativeLayout>

 

 以上就是 搭建直播平台,自定义VIew实现设置防截屏、添加水印,更多内容欢迎关注之后的文章

 

标签:layout,自定义,labels,水印,防截屏,import,android,VIew
From: https://www.cnblogs.com/yunbaomengnan/p/17393969.html

相关文章

  • UITableView 系列五 :自定义UITableViewCell (实例)
    有时候我们需要自己定义UITableViewCell的风格,其实就是向行中添加子视图。添加子视图的方法主要有两种:使用代码以及从.xib文件加载。当然后一种方法比较直观。我们这次要自定义一个Cell,使得它像QQ好友列表的一行一样:左边是一张图片,图片的右边是三行标签:当然,我们不会搞得这么复杂,只......
  • uniapp 自定义顶部导航
    <uni-nav-bardark:fixed="true"shadowcolor="#333"background-color="#f6f6f6"status-barleft-icon="left"left-text="返回"title="识别结果"@clickLeft="goback">......
  • APIView执行流程(源码分析)、Request对象源码分析
    目录一、APIView执行流程——源码分析(难,了解)1.1基于APIView+JsonResponse编写接口1.2基于APIView+Response写接口1.3APIView的执行流程二、Request对象源码分析(难,了解)一、APIView执行流程——源码分析(难,了解)1.1基于APIView+JsonResponse编写接口#原来基于django原生的Vi......
  • layer.load 自定义加载
    //layuiload默认加载functionlayerload(){layer.load(0,{content:'正在努力加载中,请稍等',shade:[0.5,'#000'],//0.4为透明度,#000为颜色offset:['45%','40%'],//位置success:function(layero){......
  • c++自定义工具类的定义和使用
    classlog_work{private:intlog_id_=1;intlog_level_;qnx_slog2()=default;virtual~qnx_slog2(){uninit();}public:inlinestaticlog_work&get_log(){staticqnx_slog2slog2_instance;returnslog2_instance;}......
  • c++模版多参数的递归用法--自定义log
    #include<iostream>#include<sstream>#include<string>#include<tuple>#include<type_traits>template<typenameT>voidprint_impl(std::ostringstream&os,constchar*format,T&&arg){while(*form......
  • 自定义信息提示框dialog.js
    varowner;functiongetOwner(){ if(owner) returnowner; varowner=window; try{ if(top.document.domain==window.document.domain){ if(top.length>1) owner2=top[0]; else owner=top; } }catch(ex){ while(owner.p......
  • uniapp自定义开发一个文本输入框
    开发component中的一个input标签一、在原来的模块上面创建一个新的类TestComponent1.新建TestComponent2.配置json文件二、uniapp准备工作1.在uniapp中写一下刚刚创建的输入框2.打包导出资源3.资源替换复制刚刚生成的本地资源文件夹到AndroidStudio项目中......
  • wordpress 为自定义类型文章新增自定义字段
    wordpress强大之处在于有很强的可自定义性,使得插件、主题的开发变得及其便利。就拿我们今天要说的自定义文章添加自定义字段来说,就很便捷。        比如我们要录入一个客户信息到wordpress中,那么需要的字段可不仅仅是什么标题、内容、摘要这么简单了,我们可能需要录入客户......
  • springboot+Prometheus+grafana 实现自定义监控(请求数、响应时间、JVM性能)
    自定义监控1.SpringBoot工程集成Micrometer1.1引入依赖1.2配置1.3监控jvm信息1.4创建自定义监控1.5添加具体业务代码监控2.集成Prometheus2.1安装2.2集成配置3.使用GrafanaDashboard展示监控项3.1安装grafana3.2配置prometheus数据源3.3增加jvm面板3.4配置业务接口监控面板......