Показать элемент по горизонтали? - PullRequest
0 голосов
/ 02 февраля 2012

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

Я также ссылаюсь на ссылку http://www.dev -smart.com / archives / 34 , чтобы реализовать горизонтальный 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;

    }

}

Ответы [ 2 ]

0 голосов
/ 02 февраля 2012

Посмотрите на приведенный ниже код, который поможет вам в полной мере. Работает нормально

@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
0 голосов
/ 02 февраля 2012

вы можете использовать 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;

        }
...