2017-04-03 16 views
0

나는 앱이 시작될 때 표시되는 경고가있는 기본 앱을 만들고 있습니다. 이 경고에는 WebView가 있고 거의 모든 화면을 다룹니다. 다음은 내가 생각하고있는 질문입니다.android에서 경고 크기 조정

  1. 이제이 알림의 크기를 조정할 수 있습니까?

  2. 경고의 웹보기의 URL은 일부 사용자가 내 응용 프로그램을 사용하는 경우의 말을하자 'http://www.google.com'로 설정하고 지금은 그들 (사용자가) 그래서 어떻게 URL을 변경합니까 경고에서 다른 웹 페이지를보고 싶어 사용자 (사용자)가 앱을 업데이트하지 않고 어떻게 할 수 있습니까? 경고 대화에 대한 사용자 정의 레이아웃을 사용하여이 경고 대화 상자에 대한

MainActivity.java

package com.example.android.two; 

import android.app.Dialog; 
import android.content.DialogInterface; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.WindowManager; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Button; 
import android.widget.EditText; 

import com.example.android.two.R; 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     final Dialog dialog = new Dialog(this); 

     WebView wv = new WebView(this); 
     wv.loadUrl("http:\\www.google.com"); 
     wv.setWebViewClient(new WebViewClient() { 
      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       view.loadUrl(url); 

       return true; 
      } 
     }); 

     AlertDialog.Builder alert = new AlertDialog.Builder(this); 
     alert.setTitle("Notification"); 
     alert.setView(wv); 
     alert.setNegativeButton("Close", new DialogInterface.OnClickListener() { 
      @Override 
      public void onClick(DialogInterface dialog, int id) { 
       dialog.dismiss(); 
      } 
     }); 
     alert.show(); 

    } 
} 

답변

0

예, 사용자가 설정할 수있는 크기.
두 번째 요령을 자세히 설명해주십시오.

0

이 같은 사용자 정의 대화 레이아웃을 사용할 수 있습니다 : 우리는 치수를 조정하는 WindowManager.LayoutParams를 사용하거나 우리가 위의 LinearLayout의 높이와 너비를 설정할 수 있습니다

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 
    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="50dp" 
     android:orientation="horizontal"> 
     <Button 
      android:layout_width="60dp" 
      android:layout_height="match_parent" 
      android:text="GO" 
      android:id="@+id/go"/> 
     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:id="@+id/urlText"/> 

     </LinearLayout> 
    <ScrollView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
    <WebView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/web"> 

    </WebView> 
    </ScrollView> 
</LinearLayout> 

.

활동 코드는 다음과 같습니다

import android.app.Dialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.Gravity; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Button; 
import android.widget.EditText; 


public class MainActivity extends AppCompatActivity { 
    WebView wv; 
    EditText url; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     final Dialog dialog = new Dialog(this); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setContentView(R.layout.custom_alert_dialog); 
     WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
     lp.copyFrom(dialog.getWindow().getAttributes()); 
     lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
     lp.height = WindowManager.LayoutParams.MATCH_PARENT; 
     lp.gravity = Gravity.CENTER; 
     url=(EditText) dialog.findViewById(R.id.urlText); 
     wv=(WebView) dialog.findViewById(R.id.web); 
     wv.setWebViewClient(new MyBrowser()); 
     wv.getSettings().setLoadsImagesAutomatically(true); 
     wv.getSettings().setJavaScriptEnabled(true); 
     wv.loadUrl("http://www.google.com"); 
     Button go=(Button)dialog.findViewById(R.id.go); 
     go.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       wv.loadUrl("http://"+url.getText().toString()); 
      } 
     }); 
     dialog.getWindow().setAttributes(lp); 

     dialog.show(); 
    } 

    private class MyBrowser extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
     } 
    } 
} 

는 도움이되기를 바랍니다.

건배!

+0

감사합니다.하지만 사용자 정의 대화 상자 XML 파일에서 'layout_width'및 'layout_height'를 변경하더라도 알림 대화 상자가 거의 전체 화면을 덮고 있습니다. – 8hubham

+0

XML이보기를 먼저 설정하고 lp.width = WindowManager.LayoutParams.MATCH_PARENT; lp.height = WindowManager.LayoutParams.MATCH_PARENT; 차원을 동적으로 설정하십시오. 요구 사항에 따라 치수를 여기에서 변경하는 경우 효과가있을 것입니다. –

+0

크기를 동적으로 설정하는 방법은 무엇입니까? – 8hubham