2012-02-02 3 views
0

Все, что я хочу, чтобы отобразить некоторые данные изображения из RSS-ленты. Мой код RSS-канала работает с хорошим изображением, также правильно загружается из фида, но я не могу отображать изображение горизонтально? Я пробовал с Gallery, но не смог поместить изображение в это? Есть ли способ добиться того же?Показать позицию по горизонтали?

Я также ссылаюсь на ссылку http://www.dev-smart.com/archives/34 для реализации Horizontal ListView, но в этом я не могу реализовать onClickListener в списке. Любая помощь пожалуйста. Спасибо.

Код я попытался для галереи ..

общественный класс ImageAdapter расширяет BaseAdapter {

int imageBackground; 
private List<RSSIteam> objects = null; 
private Context context; 

public ImageAdapter(Context c) 
{ 
    context = c; 
    TypedArray ta = obtainStyledAttributes(R.styleable.Gallery1); 
    imageBackground = ta.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 1); 
    ta.recycle(); 
} 

public ImageAdapter(Context context, int textViewResourceId, List<RSSIteam> objects) 
{ 
    super(); 
    this.context = context; 
    this.objects = objects; 
} 

    @Override 
    public int getCount() 
    { 
     return this.objects.size(); 
     //return pics.length; 

    } 

    @Override 
    public Object getItem(int position) 
    { 
     return this.objects.get(position); 
     //return position; 
    } 

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

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) 
    { 
     RSSIteam data = (RSSIteam) getItem(position); 
     String imageUrl = data.imageurl; 
     try 
    { 
      URL feedImage = new URL(imageUrl); 
      HttpURLConnection conn= (HttpURLConnection)feedImage.openConnection(); 
      InputStream is = conn.getInputStream(); 
      Bitmap img = BitmapFactory.decodeStream(is); 



     } 
    catch (MalformedURLException e) 
    { 
      e.printStackTrace(); 
     } 
    catch (IOException e) 
    { 
      e.printStackTrace(); 
     } 



     ImageView iv = new ImageView(context); 
     iv.setImageResource(img[position]); //here i am unable to set the image in particular position because it require int type array 
     iv.setScaleType(ImageView.ScaleType.FIT_XY); 
     iv.setLayoutParams(new Gallery.LayoutParams(90,70)); 
    iv.setBackgroundResource(imageBackground); 
    return iv; 

    } 

}

+0

«Я попытался с галереи, но не в состоянии поставить изображение в том, что .. ???» - Отправьте свой проверенный код. – user370305

ответ

0

вы можете использовать galleryholder.xml. Этот xml содержит изображение и он надувается адаптером, а вид возврата и адаптер заполняют это представление в галерее.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="100dp" 
    android:layout_height="fill_parent" 
    android:background="@drawable/my_border" 
    android:orientation="vertical" 
    android:padding="5dp" > 


      <ImageView 
       android:id="@+id/storyImage" 
       android:layout_width="fill_parent" 
       android:layout_height="70dp" 
       android:scaleType="fitXY" /> 

</LinearLayout> 

and use Image adapter to fill the gallery 

galleryID.setAdapter(new ImageAdapter()); 

Image Adapter code 


    @Override 
     public View getView(int position, View convertView, ViewGroup parent) 
     { 
    LayoutInflater layoutInflater=(LayoutInflater) 
        context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View view=(View)layoutInflater.inflate(R.layout.galleryholder,parent,false); 
     ImageView iv; 
      if(convertView==null){ 

       convertView=view; 
       iv=(ImageView)view.findViewById(R.id.storyImage); 

      } 
      RSSIteam data = (RSSIteam) getItem(position); 
      String imageUrl = data.imageurl; 
      try 
     { 
       URL feedImage = new URL(imageUrl); 
       HttpURLConnection conn= (HttpURLConnection)feedImage.openConnection(); 
       InputStream is = conn.getInputStream(); 
       Bitmap img = BitmapFactory.decodeStream(is); 



      } 
     catch (MalformedURLException e) 
     { 
       e.printStackTrace(); 
      } 
     catch (IOException e) 
     { 
       e.printStackTrace(); 
      } 



      iv.setImageResource(img[position]); //here i am unable to set the image in particular position because it require int type array 
      iv.setScaleType(ImageView.ScaleType.FIT_XY); 
      iv.setLayoutParams(new Gallery.LayoutParams(90,70)); 
     iv.setBackgroundResource(imageBackground); 
     return convertView; 

     } 
0

Посмотрите это ниже код, который будет помогать полном объеме you.it работает отлично

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     /* 
     * // here i am setting the text color and bckgroung of layout // 
     * According to time if (6 <= (new Date()).getHours() && (new 
     * Date()).getHours() <= 17) { ll.setBackgroundColor(Color.BLACK); 
     * label.setTextColor(Color.WHITE); } else { 
     * ll.setBackgroundColor(Color.WHITE); 
     * label.setTextColor(Color.BLACK); } 
     */ 
     // return (row); 

     View v = convertView; 
     if (v == null) { 

      LayoutInflater inflater = context.getLayoutInflater(); 
      v = inflater.inflate(R.layout.myrow, null); 
     } 
     Item o = itemsCmn.get(position); 
     if (o != null) { 
      TextView tt = (TextView) v.findViewById(R.id.label); 
      ImageView icon = (ImageView) v.findViewById(R.id.icon); 
      if (tt != null) { 
       tt.setText(o.getTitle()); 
      } 
      else{ 

      } 
      if (icon != null) { 
       if (o.getImg() != null) { 
        icon.setImageBitmap(BitmapFactory.decodeByteArray(
          o.getImg(), 0, o.getImg().length)); 
       }else{ 
        icon.setImageResource(R.drawable.images); 
       } 
      } 
     } 
     return v; 
    }// getView