2016-08-20 6 views
0

아래 그림에서 알 수 있듯이 GradientDrawable을 텍스트 뷰의 배경으로 넣습니다.GradientDrawable border textview croped

결과가 이상합니다. 텍스트가 자릅니다.

Result

그리고 코드가있다 :

GradientDrawable border = new GradientDrawable(); 
    border.setColor(0x00FFFFFF); 
    border.setStroke(1,Color.GRAY); 
    border.setCornerRadius(size); 

    EditText surname = new EditText(this); 
    surname.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM); 
    surname.setBackground(border); 
    surname.setTypeface(Stats.fontRegular); 
    FrameLayout.LayoutParams lps = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, size_x); 
    surname.setLayoutParams(lps); 
    view.addView(surname); 

당신은 텍스트 나를 위해 매우 유용 할 것입니다 :

+0

무엇'size_x'가 그리고 왜 높이로 설정하는? 그것은 텍스트보기를 자르고 있습니다. –

답변

0

작동하는 것을 찾았습니다.

EditText를 사용하면보기 내에 일부 패딩이있는 것으로 보입니다. 그래서 당신은 그들을

EditText.setPadding(int left, int top, int right, int bottom) 
0

당신과 함께 중력을 변경할 수 있습니다 uncrop 할 수있는 방법을 알고 있다면 이 XML 코드 :

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" 
    android:text="@string/**yourstringname**" 
/> 
+0

죄송 합니다만 저는 프로그래밍 방식으로 뷰의 거의 모든 매개 변수를 설정했기 때문에 XML을 사용하지 않습니다. 그리고 당신은 이미 중력을 변경하려고 Java에서 볼 수 있습니다 – Kemix

+0

코드의이 차선을 변경하십시오 : surname.setGravity (Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL); – LychmanIT

+0

@LynchmanIT : 아무 것도 바뀌지 않습니다. – Kemix

0

이 시도 '비활성화'를 사용 할 수 있습니다

GradientDrawable border = new GradientDrawable(); 
border.setColor(0x00FFFFFF); 
border.setStroke(1,Color.GRAY); 
border.setCornerRadius(size); 
border.setSize(450, 150);