2014-01-22 4 views
0

Я разрешаю пользователю приложения изменять изображения ImageButton из выпадающих папок?Как пользовательский образ ImageButton?

Возможно ли это?

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

ответ

0

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

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); 
    } 
}); 
+0

Благодаря rahulritesh, но ти этого решения пользователь не может выберите более одного изображения, я думаю (если я правильно понимаю), Я хочу выбрать между фотографиями –

+0

Почему ты не можешь это сделать? Для каждого изображения у вас есть идентификатор, а затем вы можете делать все, что хотите, на основе выбора. – rahulritesh

+0

У вас есть причина, как можно дать возможность Пользователю выбрать? –

Смежные вопросы