2016-08-18 8 views
-1

보기에, 부모에 적용 할 것 같다 :문제는() :</p> <pre><code>public class ScRectangle extends View implements Parcelable{ ... } </code></pre> <p>나는 또한 그리기 다음 만든 : 그리기 가능하지 내가 <code>View</code> 클래스를 확장하는 사용자 정의보기를 개발

<?xml version="1.0" encoding="utf-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle" > 
<solid 
    android:color="@android:color/transparent" /> 
<corners 
    android:radius="@dimen/thickBorder" /> 
<stroke android:width="@dimen/thickBorder" 
    android:color="@color/fab_color_normal" /> 

그때 위의 사용자 정의보기의 새 인스턴스를 배경으로이 당김을 적용하려고 :

ScRectangle r = new ScRectangle(this, left, top, right, bottom, "thinBorder", "OrangeState", 0); 
    r.setBackground(ContextCompat.getDrawable(mContext, R.drawable.selected_state)); 
    drawingFrame.addView(r); 

rdrawingFrame의 유일한보기입니다. 위의 코드는 예상 된 사각형을 올바른 위치와 올바른 크기로 프레임 안에 올바르게 추가합니다. 그러나 드로어 블은 r 대신에 drawingFrame에 적용되는 것으로 보입니다. 드로어 블 전체 그리드를 따라 어두운 주황색 테두리가있는 동안

은 *****, r은 D5에있는 작은 빛 오렌지 광장 아래 그림에서 편집 *****

입니다. 위의 코드를 변경하는 방법을

enter image description here

?

+0

로 설정 배경 당신은 그 사진을 게시 할 수 있습니까? – Vucko

+1

'LayoutParams'가 지정되지 않은 커스텀'View'를 추가하고 있습니다, 아마 부모를 채울 것입니다. 'View'의 생성자 호출에'left','top','right','bottom' 인자가 있다는 사실은 제가 여러분의 사각형에 대한 경계라고 생각하게 만듭니다. 그러나,'View'에 설정된 배경은 사각형의 경계가 아닌'View'의 범위를 채울 것이기 때문에 부모에게 설정되어있는 것처럼 보입니다. 실제로'View'가 채우기 만하면됩니다. 부모. 이미지를 직접 그리는 것을 처리하거나,'View'를 추가 할 때 적절한'LayoutParams'를 사용해야합니다. –

+0

왼쪽, 위쪽, 오른쪽, 아래쪽이 잘못되었습니다. ViewGroup에보기를 추가 할 때마다 LayoutParams가 표시됩니다. 그리고 그 매개 변수들로부터 왼쪽, 최상위 등을 얻으십시오. – Nepster

답변

0

재정

setBackground의의 사용자 정의 클래스의 방법과 현재보기

+0

은 사용자 정의 클래스의 onDraw() 메소드에 있습니까? – ema3272

+0

레이아웃 파일을 추가 할 수 있습니까? – Don