Я пытаюсь создать интерфейс, похожий на табуляцию, где я буду переключать представления, сдвигая влево / вправо. Я показываю пользователю, на какой странице они находятся, добавляя синее свечение к задней части значка вкладки, показанного здесь:
Я сделал это, создав собственный вид, который будет рисовать свечение фона (если выбрана вкладка), а затем значок. Моя проблема в том, что свечение слишком велико . Все, что мне нужно сделать, это сделать его меньше, чтобы стороны не обрезались, как сейчас (свечение перекрывает страницу внизу по дизайну).
Свечение было создано с использованием формы, нарисованной в XML (просто радиальный градиент).
Я пытался изменить размер фигуры в XML, но он всегда получается одинаковым. Я попытался настроить атрибуты под и попытался настроить высоту и ширину тоже.
Конструктор:
public TabIconView(Context context, Bitmap tab)
{
super(context);
back = BitmapFactory.decodeResource(getResources(), R.drawable.background_blue_glow);
this.tab = tab;
}
onMeasure и onDraw:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(tab.getWidth() * 2, tab.getHeight() * 2);
}
@Override
protected void onDraw(Canvas canvas)
{
width = getMeasuredWidth();
height = getMeasuredHeight();
if (selected)
canvas.drawBitmap(back, (width - back.getWidth()) / 2, (height - back.getHeight()) / 2, null);
canvas.drawBitmap(tab, (width - tab.getWidth()) / 2, (height - tab.getHeight()) / 2, null);
super.onDraw(canvas);
}
Любые идеи будут высоко оценены.