2016-06-15 11 views
0

赤い枠線(幅1px)とその下にある別の赤い矩形で白い矩形を作成する必要があります。このように:赤のボーダーと赤の四角形は入力エラーをユーザーに通知するために表示される一方でAndroid:図形の端に向かって背景色が変わらないようにする

enter image description here

白い長方形はEditTextになります。何もない。

私はすでにいくつかの手法を試してきましたが、同じ理由でそれらのどれもよく見えませんでした。色がシェイプの端に向かって変化します(最も外側のピクセルが変化するように見えます)。問題は、この拡大画像で見ることができる。

enter image description here

(この特定のスナップショット上の階層が赤色の背景と1pxpaddingLinearLayoutであるが、私は同じ効果一方が、他のアプローチを使用しようと観察しましたプログラムを使用してEditTextの周りに境界線を描画するなど)。

このエフェクトはAndroidの標準のように見えますが、どうすればこの機能を無効にできますか?

答えて

0

誰もがこの質問時につまずく念のために - 説明した動作は、いくつかのエミュレータました関連するアーティファクト。実際のデバイスでは、色はちょうど良かったです。

0

次の例を確認してください。

rect_shape.xml

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
     android:shape="rectangle"> 

    <stroke 
     android:width="3dp" 
     android:color="#EF9A9A"/> 
    <solid android:color="@android:color/white"/> 

</shape> 

layout.xml

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@drawable/rectangle_shape" 
     android:orientation="vertical"> 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="@android:color/transparent" 
      android:lines="3" 
      android:padding="5dp"/> 

     <View 
      android:layout_width="match_parent" 
      android:layout_height="3dp" 
      android:background="#EF9A9A"/> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="36dp" 
      android:layout_marginBottom="3dp" 
      android:layout_marginLeft="3dp" 
      android:layout_marginRight="3dp" 
      android:background="#EF5350"/> 


    </LinearLayout> 

出力:

enter image description here

+0

これは私が必要としているものとまったく逆です - 明確なモノリシックな色を持ち、区別できる「境界線」がないようにしたい – Vasiliy

+0

こんにちは、あなたが正確に何を望んでいるか説明してください。 – Sach

関連する問題