Я расширил вид, чтобы создать собственный виджет. Я хотел бы определить высоту виджета с независимой единицей пикселей.
Я думаю, что это можно сделать, умножив плотность пикселей на желаемую высоту, но я не знаю, как это сделать.
Что у меня есть (минимизировано):
public class Timeline extends View
{
@Override
protected void onDraw(Canvas canvas) {
//super.onDraw(canvas);
int canvasWidth = canvas.getWidth();
this.widgetWith = canvasWidth;
this.setBackgroundGradientNoVideo();
RectF rect = new RectF();
rect.set(0, 0, canvasWidth, 50);
//Dessin d'un rectangle de fond
canvas.drawRoundRect(rect, 10, 10, this.paint);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
//super.onMeasure(widthMeasureSpec, 50);
this.setMeasuredDimension(widthMeasureSpec, 50);
this.widgetWith = MeasureSpec.getSize(widthMeasureSpec);
}
}
Так что я хотел бы изменить строки
this.setMeasuredDimension(widthMeasureSpec, 50);
и
rect.set(0, 0, canvasWidth, 50);
К чему-то независимому от пикселей.
Спасибо