2012-07-26 14 views
9

WebView yuvarlak köşelerimi vermeye çalışıyorum.Android: Web sayfalarının yuvarlak köşelerini yuvarlak mı verin?

rounded_webview.xml: Burada

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle" android:padding="10dp"> 
<solid android:color="#000"/> 
    <corners 
    android:bottomRightRadius="15dp" 
    android:bottomLeftRadius="15dp" 
    android:topLeftRadius="15dp" 
    android:topRightRadius="15dp"/> 
</shape> 

Ve webView edilir:

<WebView 
     android:id="@+id/webView1" 
     android:layout_width="293dp" 
     android:layout_height="142dp" 
     android:layout_gravity="center_horizontal" 
     android:padding="5dip" 
     android:background="@drawable/rounded_webview"/> 

Ama basitçe çalışmaz

İşte benim kodudur! Köşeler deneyin ... önceden

çok teşekkür ederiz,

+0

Sen deneyebilirsiniz:


Tüm ayrıntılar

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="fill_parent"> <!-- ... INSERT ANY VIEW HERE ... --> <!-- FRAME TO MASK UNDERLYING VIEW --> <ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:background="@drawable/grey_frame" android:layout_alignTop="@+id/mainLayout" android:layout_alignBottom="@+id/mainLayout" /> </RelativeLayout> 
burada benim orijinal cevap bulunabilir:

XML kodu şöyle bir şey olabilir webView üzerinde yuvarlanmış bir kukla görünüm eklemek için ... Böylece ötesine kalacak ve yuvarlak görünüyor. – yahya

cevap

12

tek yolu diğer görüş WebView elemanı sarmak (örneğin FrameLayout), ve dış görünüm üzerinde yuvarlatılmış köşeler arka plan uygulanır: Bunu şeffaf yapmak ve çekilebilir arka plan göstermek için aşağıdaki kodu kullanmanız gerekecektir . Örnek:

<FrameLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingTop="10dip" 
     android:paddingBottom="10dip" 
     android:paddingLeft="1dip" 
     android:paddingRight="1dip" 
     android:background="@drawable/white_rounded_area" 
     > 
    <WebView 
      android:id="@+id/web_view" 
      android:layout_width="300dip" 
      android:layout_height="400dip" 
      android:layout_gravity="center" 
      /> 
</FrameLayout> 

paddingTop ve paddingBottom paddingLeft ve paddingRight vuruş genişliği çekilebilir/white_rounded_area eşittir/white_rounded_areaçekilebilir gelen çapındaki eşittir.

Bu yaklaşımın bir kısmı, özellikle sayfa kaydırıldığında WebView ile web sayfasının farklı arka plan rengine sahip olabilir.

3

yuvarlak olmayan bu

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle" > 

    <corners 
     android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp" 
     android:topLeftRadius="10dp" android:topRightRadius="10dp"/> 

     <stroke 
     android:color="@drawable/black" 
     android:width="3dp"/> 

</shape> 
16

Bu Web görünümü küçük bir cilvesi, o önünde çekilmiş beyaz varsayılan arka plan rengini vardır herhangi bir çekilebilir.

WebView webview = (WebView)findViewById(R.id.webView1);   
webview.setBackgroundColor(0); 
0

Resim çerçevesine benzeyen, çerçeveyi yuvarlak köşelere verdiğim bir görüntü kullanıyorum. Bu resim çerçevesini numaralı üzerinden yuvarlatılmış köşelere vermeye çalışıyorum.

Bu, güzel bir şekilde çalışmayan arka plan panellerinin the problem in iBog's solution'u aşar.


Hile, RelativeLayout; düzeninizi içine yerleştirin. Düzeninizin altında, background ayarını uygun bir maskeleme görüntü karesine ayarlamak için başka bir ImageView ekleyin. Bu, diğer düzeninizin üstünde olacak.

Benim durumumda, gri bir arka plan olan 9Patch bir dosya yaptım, bunun yerine şeffaf yuvarlatılmış bir dikdörtgen çıktı.

frame

Bu altta yatan düzeni için mükemmel maske oluşturur.