Масштабирование фонового изображения в android для пользовательского представления (seekArc)


У меня есть образ:

Калибр

Это изображение устанавливается в качестве фона для seekArc (циркулярная панель поиска, найденная здесь)

Проблема заключается в том, что когда я устанавливаю изображение, которое я сделал, на фоне вида seekArc; оно простирается за фактическую дугу seekArc; как видно из этого скриншот

XML-код:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:seekarc="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <com.triggertrap.seekarc.SeekArc
        android:id="@+id/SeekArc1"
        android:layout_width="500dp"
        android:layout_height="500dp"
        android:layout_alignBottom="@+id/hometemp"
        android:layout_alignParentRight="true"
        android:background="@drawable/largepower"
        android:padding="85dp"
        seekarc:arcWidth="3dp"
        seekarc:max="100"
        seekarc:rotation="180"
        seekarc:startAngle="30"
        seekarc:sweepAngle="300"
        seekarc:touchInside="true" />

    <com.triggertrap.seekarc.SeekArc
        android:id="@+id/SeekArc01"
        android:layout_width="500dp"
        android:layout_height="500dp"
        android:layout_alignLeft="@+id/homepower"
        android:layout_alignTop="@+id/SeekArc1"
        android:padding="85dp"
        seekarc:arcWidth="3dp"
        seekarc:max="100"
        seekarc:rotation="180"
        seekarc:startAngle="30"
        seekarc:sweepAngle="300"
        seekarc:touchInside="true" />

    <ProgressBar
        android:id="@+id/hometemp"
        style="@style/tallerBarStyle"
        android:layout_width="500dp"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:maxHeight="50dp" />

    <Switch
        android:id="@+id/homepower"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignTop="@+id/SeekArc01"
        android:text="Power" />

</RelativeLayout>

Фрагмент кода:

homeFragmentView = viewInflation.inflate(R.layout.homefragment_page,
                container, false);
        temp = (ProgressBar) homeFragmentView.findViewById(R.id.hometemp);
        power = (Switch) homeFragmentView.findViewById(R.id.homepower);
        s1 = (SeekArc) homeFragmentView.findViewById(R.id.SeekArc1);
        s2 = (SeekArc) homeFragmentView.findViewById(R.id.SeekArc01);

        Resources res = homeFragmentView.getResources();
        Drawable drawable = res.getDrawable(R.drawable.largepower);
        if (drawable.equals(null)) {
            Toast.makeText(getActivity().getBaseContext(), "NULL", Toast.LENGTH_LONG).show();
        } else {

            Toast.makeText(getActivity().getBaseContext(), "NOT NULL", Toast.LENGTH_LONG).show();
        s1.setBackground(drawable);
        }

Какой был бы хороший способ заставить seekArc обойти изображение?

1 2

1 ответ:

Я решил эту проблему, создав собственное растровое изображение.xml-файл:

 <?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/small"
    android:antialias="false"
    android:dither="false"
    android:filter="false"
    android:gravity="center"
    android:mipMap="false"
    android:tileMode="disabled" />

И поместив его в новую папку @drawable-nodpi, которую я создал в своем res.

Затем я сослался на изображение с ручным масштабированием нужного мне размера.