2011-08-29 9 views
0

4 개의 열이있는 TableLayout이 있습니다. 열 1을 늘리려면 다음을 수행하십시오.TableLayout의 열 너비를 측정하십시오.

android:stretchColumns="1" 

이 방법은 잘 작동합니다. 이제 화면에 표시되면이 열의 너비를 측정해야합니다. 이 열에 사용자 지정보기를 맞추기 때문에이 작업을 수행해야합니다.

그래서이 사용자 정의 그려진 사각형 내의 TableView의 컬럼 1에 적합해야한다}

public class TaskRectangleView extends View { 
private ShapeDrawable mDrawable; 
private Paint textPaint;  
private String task; 

public TaskRectangleView(Context context, String task, int width, int height) { 
    super(context); 

    this.task = task; 

    int x = 10; 
    int y = 10;     

    mDrawable = new ShapeDrawable(new RectShape()); 
    int color = DbSettingsManager.getInstance(context).getColorByName(task); 
    mDrawable.getPaint().setColor(color); 
    mDrawable.setBounds(x, y, x + width, y + height); 

    textPaint = new Paint(Paint.ANTI_ALIAS_FLAG); 
    textPaint.setColor(Color.WHITE); 
    textPaint.setTextSize(10);   
} 

protected void onDraw(Canvas canvas) { 
    mDrawable.draw(canvas); 

    canvas.drawText(this.task, 10, 20, textPaint); 
} 

:이 사용자 지정보기 1. 내가하여 사각형을 그립니다이 칼럼의 전체 폭에 기입하여야 단지 직사각형 . 이를 위해 (나는 믿기 때문에) 표시 시간에 열 너비를 측정해야합니다. 이 작업을 수행하는 방법? 감사!

답변

0

부모님의 치수를 알 필요가 있다고 생각하지 않습니다. 사용자 정의보기에서 match_parrent 속성을 사용할 수 있습니다. 문서 How Android draws views은 사용자 정의보기를 올바른 크기로 만드는 방법을 설명합니다. 80 %로 아이 뷰의 폭을 설정하기 위해

+0

확인 감사로 설정은 "layout_width"속성을 사용할 수 있습니다. 그럼 어떻게할까요? TableLayout에는 부모 (열 너비)를 채우는 첫 번째 행에 내 사용자 지정보기가 있습니다. 두 번째 행에는 첫 번째 사용자 지정보기 너비의 80 % 인 다른 사용자 지정보기가 있습니다. 두 번째 (80 %) 너비는 어떻게 얻습니까? –

1

, 당신은 힌트 0.8

관련 문제