Как центрировать большой палец панели поиска в Android?

Изображение панели поиска

Мне удалось программно создать панель поиска в Android, но я застрял в центрировании прямоугольного большого пальца и правильной настройке его высоты. Как центрировать большой палец?

РЕДАКТИРОВАТЬ: прикрепление кода Примечание: код находится в javascript, но он эквивалентен тому, что можно сделать в java (я использую среду, в которой это можно сделать)

function setSeekBarProgress(){

    var shape=new android.graphics.drawable.GradientDrawable();
    shape.setOrientation(android.graphics.drawable.GradientDrawable.Orientation.BOTTOM_TOP);
    shape.setColor(android.graphics.Color.BLUE);
    shape.setCornerRadius(50);
    shape.setSize(600,200);
    shape.setBounds(0,0,600,200);

    var clip=new android.graphics.drawable.ClipDrawable(shape,android.view.Gravity.LEFT,android.graphics.drawable.ClipDrawable.HORIZONTAL);



    shape=new android.graphics.drawable.GradientDrawable();
    shape.setOrientation(android.graphics.drawable.GradientDrawable.Orientation.BOTTOM_TOP);
    shape.setColor(android.graphics.Color.BLACK);

    shape.setCornerRadius(50);
    shape.setSize(1000,200);
    shape.setBounds(0,0,1000,200);
    var insetDrawable=new android.graphics.drawable.InsetDrawable(shape,5,5,5,5);

    var a=[];
    var drawableArray= java.lang.reflect.Array.newInstance(android.graphics.drawable.Drawable.class,2);
    drawableArray[0]=insetDrawable;
    drawableArray[1]=clip;

    var myLayer = new android.graphics.drawable.LayerDrawable(drawableArray);

    nativeSeekBar.setProgressDrawable(myLayer);

}

И код для создания панели поиска:

           nativeSeekBar=new android.widget.SeekBar(args.context,null, android.R.attr.progressBarStyleHorizontal);
            setSeekBarProgress();
            var RoundRecFirstArg= java.lang.reflect.Array.newInstance(java.lang.Float.class.getField("TYPE").get(null),8);
            RoundRecFirstArg[0]=2;
            RoundRecFirstArg[1]=2;
            RoundRecFirstArg[2]=2;
            RoundRecFirstArg[3]=2;
            RoundRecFirstArg[4]=2;
            RoundRecFirstArg[5]=2;
            RoundRecFirstArg[6]=2;
            RoundRecFirstArg[7]=2;
            var thumb=new android.graphics.drawable.ShapeDrawable(new android.graphics.drawable.shapes.RoundRectShape(RoundRecFirstArg,null,null));
                           thumb.getPaint().setColor(android.graphics.Color.rgb(133,133,133));
            thumb.setIntrinsicHeight(200);
            thumb.setIntrinsicWidth(80);
            nativeSeekBar.setThumb(thumb);
            nativeSeekBar.setProgress(20);

person sumeet batheja    schedule 09.10.2015    source источник
comment
размещено: пожалуйста, проверьте   -  person sumeet batheja    schedule 10.10.2015
comment
Как называется этот JS API?   -  person Rami    schedule 10.10.2015
comment
nativescript.org   -  person sumeet batheja    schedule 10.10.2015
comment
Я никогда раньше не использовал этот API, чтобы дать вам правильный ответ, но я думаю, что ваша проблема заключается в следующем: когда вы вызываете shape.setBounds(int left, int top, int right, int bottom); (для создания черных и синих фигур), вы передаете координаты на экране в качестве параметра, а для при создании большого пальца вы используете setIntrinsicHeight(200);, который устанавливает высоту (а не координаты). Попробуйте изменить setIntrinsicHeight(200); на setIntrinsicHeight(400); например.   -  person Rami    schedule 10.10.2015
comment
Если я установлю высоту на 400, высота панели поиска уменьшится, а большой палец больше, чем фактическая высота панели поиска, и будет перекошен (см. этот вопрос: stackoverflow.com/questions/13158831/ ), это именно та проблема, с которой я сталкиваюсь после изменения размера на 400, хотя приведенное там решение тоже не помогает... Я не могу получить это сосредоточено   -  person sumeet batheja    schedule 10.10.2015


Ответы (2)


не могу понять что на картинке поставь если угадаю напиши

вы можете использовать

android:layout_centerHorizontal="true" 

пожалуйста, опубликуйте свой код, чтобы мы могли вам помочь.

person Mohammad    schedule 09.10.2015

Вам нужно установить высоту thumb как высоту seekBar. Чтобы ваш thumb был «тоньше», чем ваш seekBar, я создал растровое изображение, которое имеет высоту seekBar и ширину drawable. Затем я установил положение thumb посередине с помощью: Drawable.setBounds()

person Hadas    schedule 11.10.2018