Android 는 프라이버시 정책 의 팝 업 창 과 링크 기능 을 실현 합 니 다.

1.효과 전시
먼저 효 과 를 보 여 줘,네가 필요 로 하 는 지 아 닌 지.
在这里插入图片描述
在这里插入图片描述
2.구체 적 실현
 2.1 버튼 미화
drawable 폴 더 아래 새 buttonshape.xml

<?xml version="1.0" encoding="utf-8" ?>
<!--            ,   button      -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!--     -->
    <solid android:color="#F59E27" />
    <!--    -->
    <corners android:radius="105dip" />
    <padding
        android:bottom="2dp"
        android:left="33dp"
        android:right="33dp"
        android:top="2dp">
    </padding>
</shape>
2.2 탄창 미화
drawable 폴 더 아래 새 dialogprivacy_shape.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!--     -->
    <solid android:color="#ffffff" />
    <!--        -->
    <corners android:radius="10dp" />
</shape>
2.3 프라이버시 정보
assets 폴 더 에 privacy.txt 를 새로 만 듭 니 다.팝 업 창 주체 정보 입 니 다.
2.4 윈도우 레이아웃
layot 폴 더 아래 레이아웃 dialog 새로 만 들 기privacy_show.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/dialog_privacy_shape"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_above="@+id/ll_btn_bottom"
            android:layout_marginBottom="15dp"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:id="@+id/tv_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_marginBottom="10dp"
                android:text="      "
                android:textColor="#000000"
                android:textSize="18sp" />

            <ScrollView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginLeft="5dp"
                android:layout_marginRight="5dp"
                android:fadingEdgeLength="50dp"
                android:requiresFadingEdge="horizontal">

                <TextView
                    android:id="@+id/tv_content"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="10dp"
                    android:singleLine="false"
                    android:text=""
                    android:textColor="#000000" />
            </ScrollView>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_btn_bottom"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="center"

            >
            <Button
                android:id="@+id/btn_agree"
                android:layout_width="130dp"
                android:layout_height="wrap_content"
                android:layout_marginBottom="2dp"
                android:layout_marginRight="15dp"
                android:text="  "
                android:onClick="onClickAgree"
                android:textColor="#FF0006"
                android:background="@drawable/button_shape"/>
            <Button
                android:id="@+id/btn_disagree"
                android:layout_width="130dp"
                android:layout_marginBottom="2dp"
                android:layout_height="wrap_content"
                android:text="    "
                android:onClick="onClickDisagree"
                android:textColor="#000000"
                android:background="@drawable/button_shape"/>

        </LinearLayout>
    </RelativeLayout>
</LinearLayout>
효과:
在这里插入图片描述
2.5 윈도우 링크
새 이벤트 yinsi.xml
이벤트 레이아웃 먼저 쓰기

<LinearLayout android:layout_width="match_parent"
    android:layout_height="30dp"
    android:orientation="horizontal"
    android:gravity="center"
    xmlns:android="http://schemas.android.com/apk/res/android">



    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="    "
        android:textSize="14sp"
        />

    <TextView
        android:id="@+id/tv_xieyi"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClickPrivacy"
        android:text="    "
        android:textColor="#0000ff"
        android:textSize="14sp" />

</LinearLayout>
활성 화 된 자바 파일 을 수정 하여 링크 를 클릭 하면 팝 업 창 에서 벗 어 날 수 있 습 니 다.

package cn.edu.cdut.xihe;
import androidx.appcompat.app.AppCompatActivity;

import android.app.AlertDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;

public class yinsi extends AppCompatActivity {
    Dialog dialog;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_yinsi);
    }
    public void onClickAgree(View v)
    {
        dialog.dismiss();
    }
    public void onClickDisagree(View v)
    {
        finish();
    }
    public void onClickPrivacy(View v)
    {
        showPrivacy("privacy.txt");//  assets            
    }
    public void showPrivacy(String privacyFileName)
    {
        String str = initAssets(privacyFileName);
        final View inflate = LayoutInflater.from(yinsi.this).inflate(R.layout.dialog_privacy_show, null);
        TextView tv_title = (TextView) inflate.findViewById(R.id.tv_title);
        tv_title.setText("      ");
        TextView tv_content = (TextView) inflate.findViewById(R.id.tv_content);
        tv_content.setText(str);
        dialog = new AlertDialog
                .Builder(yinsi.this)
                .setView(inflate)
                .show();
        //   WindowManager  
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        final WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
        params.width = dm.widthPixels*4/5;
        params.height = dm.heightPixels*1/2;
        dialog.getWindow().setAttributes(params);
        dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
    }
    /**
     *  assets  txt       
     */
    public String initAssets(String fileName) {
        String str = null;
        try {
            InputStream inputStream = getAssets().open(fileName);

            str = getString(inputStream);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
        return str;
    }
    public static String getString(InputStream inputStream) {
        InputStreamReader inputStreamReader = null;
        try {
            inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
        BufferedReader reader = new BufferedReader(inputStreamReader);
        StringBuffer sb = new StringBuffer("");
        String line;
        try {
            while ((line = reader.readLine()) != null) {
                sb.append(line);
                sb.append("
"); } } catch (IOException e) { e.printStackTrace(); } return sb.toString(); } }
여기까지 하고 거의 완성 하 다.
3.한층 더 최적화
1.새로 만 든 것 은 이벤트 이기 때문에 이 링크 는 다른 레이아웃 파일 에 넣 고 include 로 도입 할 수 있 습 니 다.
2.일반적으로 사용자 가 처음 시작 해 야 팝 업 창 이 필요 합 니 다.홈 페이지 의 시작 에 팝 업 프로그램 을 추가 하고 첫 시작 여 부 를 판단 할 수 있 습 니 다.
3.여기 서 링크 를 클릭 하면 팝 업 창 이 나타 납 니 다.더 많은 경우 링크 를 클릭 하면 해당 정책 페이지 로 이동 합 니 다.여 기 는 더 이상 작성 하지 않 았 습 니 다.WebView 분장 웹 파일 을 쓰 면 됩 니 다.
4.참고 자료
본 편의 내용 은 주로 블 로 거들 의 영사 치 원 에 참고 한다Leansmall 이 업로드 한 자원 안 드 로 이 드 Privacy Show 프라이버시 팝 업 상자
안 드 로 이 드:프라이버시 정책 팝 업 창 과 링크 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 프라이버시 정책 팝 업 창 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 저 희 를 많이 사랑 해 주세요!

좋은 웹페이지 즐겨찾기