2012-04-25 2 views
0

Я использую фотогалерею в своем проекте, и я могу раздуть изображение в галерею с помощью моего адаптера. Если я хочу добавить текст (2-3 слова как имя изображения) в нижней части изображения, что мне делать? Есть ли ссылка?Android, можно ли добавить текст в каждое изображение фотогалереи?

Большое спасибо.

ответ

0

ПЕРВЫЙ: создать gallery_items макет, который имеет TextView и ImageView,

, то вы должны раздуть макет в методе GetView с использованием класса ViewHolder,

, как показано ниже:

public class GalleryPhotoWithText extends Activity { 
    private Gallery galleryView; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     galleryView = (Gallery)findViewById(R.id.galleryid); 

     galleryView.setAdapter(new ImageAdapter(this));   
      } 


public class ImageAdapter extends BaseAdapter { 
    private Activity activity; 
    private LayoutInflater inflater=null; 
    public ImageAdapter(Activity a) { 
     activity = a; 
      inflater = (LayoutInflater)activity.getSystemService 
        (Context.LAYOUT_INFLATER_SERVICE);   } 

public int getCount() { 
    return data.length;   } 

public Object getItem(int position) { 
    return position;   } 

public long getItemId(int position) { 
    return position;   }  

public class ViewHolder{ 
    public TextView text;  
    public ImageView image;   } 

public View getView(int position, View convertView, ViewGroup parent) { 
    View vi=convertView; 
    ViewHolder holder; 
    if(convertView==null){ 
     vi = inflater.inflate(R.layout.gallery_items, null); 
     holder=new ViewHolder(); 
     holder.text=(TextView)vi.findViewById(R.id.textView1); 
     holder.image=(ImageView)vi.findViewById(R.id.image); 
     vi.setTag(holder);    } 

     else  

    holder=(ViewHolder)vi.getTag(); 
    holder.text.setText(name[position]); 
    final int stub_id=data[position]; 
    holder.image.setImageResource(stub_id); 
    return vi;   } 

    private int[] data = { 
     R.drawable.image1, R.drawable.image2, 
     R.drawable.image3, R.drawable.image4, 


         }; 
    private String[] name = { 
     "first pic name", "second pic name", 
     "third pic name", "fourth pic name", 



     };  } } 

Надеемся, что эта помощь

0

Когда вы возвращаете изображение, возможно, вы можете использовать некоторые внешние банки для изменения изображения. Испытай удачу. Read this similar question.

1

Создайте и верните пользовательский объект вида из метода getView вашего адаптера. Вы можете раздуть XML, содержащий ImageView и TextView внутри LinearLayout, имеющих вертикальную ориентацию.

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