Как настроить изображение ImageButton?

Ли разрешить пользователю приложения изменять изображения в ImageButton из папок для рисования?

Возможно?

Я хочу связать это действие после onLongClickListenerЯ положил в Drawable папку с 3 или 4 изображениями (png), и пользователь может выбрать один для своего ImageButton,

1 ответ

Решение

Да, ты можешь. При щелчке onLongClickListener вы можете открыть опцию, а затем поместить оператор switch и поставить следующее для каждого из случаев:

aButton.setImageResource(R.drawable.image2);

Вот более подробный ответ:

Поместите следующее в конец макета (непосредственно перед последним закрывающим тегом макета)

<FrameLayout
    android:id="@+id/imagebuttonselectorlayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:visibility="gone"
    android:background="@android:color/black" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <ImageButton
            android:id="@+id/imgButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/image1" />

        <ImageButton
            android:id="@+id/imgButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/image2" />
    </LinearLayout>
</FrameLayout>

Затем в файле класса Java добавьте следующие строки:

FrameLayout mFrameLayout;
ImageButton mImageButton1;
ImageButton mImageButton2;

mFrameLayout = (FrameLayout)findViewById(R.id.imagebuttonselectorlayout);
mImageButton1 = (ImageButton)findViewById(R.id.imgButton1);
mImageButton2 = (ImageButton)findViewById(R.id.imgButton2);

Для onLongClick кнопки основного изображения

mImageButton1.setOnLongClickListener(new OnLongClickListener() {

    @Override
    public boolean onLongClick(View v) {
        mFrameLayout.setVisibility(View.VISIBLE);
        return true;
    }
});

Добавьте следующие строки в тот же файл для завершения функциональности:

mImageButton1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        mainImageButton.setImageResource(R.drawable.image1);
        mFrameLayout.setVisibility(View.GONE);
    }
});

mImageButton2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        mainImageButton.setImageResource(R.drawable.image2);
        mFrameLayout.setVisibility(View.GONE);
    }
});
Другие вопросы по тегам