Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
1

ViewPager

20.02.2013, 02:19. Показов 2729. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пожалуйста. Использую эту фичу в своей программе(пример один и его очень много в поисковике). И столкнулся с проблемой. На странице есть картинка(около 0,5МБ). Сколько будет страниц заведомо не известно(в зависимости от поля БД). Но в лист влезает только 3 страницы. Больше вызывает крах Out of memory. Как организовать работу что бы всё было нормально.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.02.2013, 02:19
Ответы с готовыми решениями:

ViewPager
Здравствуйте! В приложении использовал пример с Хабра http://habrahabr.ru/post/131889/, однако, не...

ViewPager
Всем. Да я недалекий и тупой, уже дня три не могу никак понять :wall: Есть ViewPager...

ViewPager setText
Приветствую ув.форумчане! Скопировал данный код из startandroid,помогите как сделать, чтобы при...

ViewPager Indicator
Здравствуйте! Взял пример с https://github.com/JakeWharton/Android-ViewPagerIndicator и хотел бы...

14
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
20.02.2013, 11:39 2
показывайте как организовано сейчас
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
20.02.2013, 14:54  [ТС] 3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    LayoutInflater inflater = LayoutInflater.from(this);
        List<View> pages = new ArrayList<View>();
        ImageView btn;
         
        View page;
        
        
        SQLiteDatabase db=dbHelpet.getReadableDatabase();
        Cursor cursor=db.query(TB_NAME,new String[]{ITEM_ID,ITEM_PRICE, ITEM_PHOTO, ITEM_TITLE,ITEM_TEXT, ITEM_ZURLPRODUCE, ITEM_ZURLSOURCE}, "_id=?",new String[] {MyApp.ID_Rat.toString()}, null, null, "ZPLACE_");
        cursor.moveToFirst();
//        int indCateg= cursor.getColumnIndex(SUBCATEGORY_CATEGORY);
        int indPhoto= cursor.getColumnIndex(ITEM_PHOTO);
        int indTitle= cursor.getColumnIndex(ITEM_TITLE);
        int indPrice= cursor.getColumnIndex(ITEM_PRICE);
        int indText= cursor.getColumnIndex(ITEM_TEXT);
        int indUrlP= cursor.getColumnIndex(ITEM_ZURLPRODUCE);
        int indUrlS= cursor.getColumnIndex(ITEM_ZURLSOURCE);
        
       
        String PakageName= this.getPackageName();
        if(!cursor.isAfterLast()) {
            
                //ArrUni[counter].categ.id=cursor.getInt(indId);
                item.transform(cursor.getString(indPhoto));
                item.sTITLE=cursor.getString(indTitle);
                item.iPRICE=cursor.getInt(indPrice);
                item.sTEXT= cursor.getString(indText);
                item.sURLPRODUCE=cursor.getString(indUrlP);
                item.sURLSOURCE=cursor.getString(indUrlS);
                for(int i=0; i<item.sPHOTO.size();i++){
                page = inflater.inflate(R.layout.page_item, null);
                
                btn= (ImageView)page.findViewById(R.id.imageView1);
                Uri path = Uri.parse("android.resource://"+PakageName+"/drawable/"+item.sPHOTO.get(i));
                btn.setImageURI(path);
                pages.add(page);}
                page=inflater.inflate(R.layout.page_info, null);
                TextView txt1=(TextView)page.findViewById(R.id.textView1);
                TextView txt2=(TextView)page.findViewById(R.id.textView2);
                TextView txt3=(TextView)page.findViewById(R.id.textView3);
                txt1.setText(item.sTITLE);
                txt2.setText(String.valueOf(item.iPRICE));
                txt3.setText(item.sTEXT);
            
        }
        
        cursor.close();
        SamplePagerAdapter pagerAdapter = new SamplePagerAdapter(pages);
        ViewPager viewPager = new ViewPager(this);
        viewPager.setAdapter(pagerAdapter);
        viewPager.setCurrentItem(1);     
         
        setContentView(viewPager);
0
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
20.02.2013, 16:24 4
В адаптеры никто вьюхи не передаёт, в адаптеры передают данные.
Конкретно в вашем случае вам нужен адаптер для ViewPager'a. Посмотрите пожалуйста примеры как с ним работать и как там всё организовано.
примеры поидее у вас должны быть тут:
C:\Program Files\Android\android-sdk\extras\android\support\samples\Support4Demos\
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
20.02.2013, 19:43  [ТС] 5
вот мой адаптер
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class SamplePagerAdapter extends PagerAdapter{
    
    List<View> pages = null;
     
    public SamplePagerAdapter(List<View> pages){
        this.pages = pages;
    }
     
    @Override
    public Object instantiateItem(View collection, int position){
        View v = pages.get(position);
        ((ViewPager) collection).addView(v, 0);
        return v;
    }
     
    @Override
    public void destroyItem(View collection, int position, Object view){
        ((ViewPager) collection).removeView((View) view);
    }
     
    @Override
    public int getCount(){
        return pages.size();
    }
     
    @Override
    public boolean isViewFromObject(View view, Object object){
        return view.equals(object);
    }
 
    @Override
    public void finishUpdate(View arg0){
    }
 
    @Override
    public void restoreState(Parcelable arg0, ClassLoader arg1){
    }
 
    @Override
    public Parcelable saveState(){
        return null;
    }
 
    @Override
    public void startUpdate(View arg0){
    }
}
0
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
20.02.2013, 19:48 6
а вы не хотели бы всё таки взглянуть в примеры? посмотреть как делают ViewPager и скармливают ему FragmentPagerAdapter?
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
22.02.2013, 23:57  [ТС] 7
Смотрел примеры. Как и следовало ожидать они не рабочие. Но бог с ними. Решил всё проще.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public static int calculateInSampleSize(
            BitmapFactory.Options options, int reqWidth, int reqHeight) {
    // Raw height and width of image
    final int height = options.outHeight;
    final int width = options.outWidth;
    int inSampleSize = 1;
 
    if (height > reqHeight || width > reqWidth) {
 
        // Calculate ratios of height and width to requested height and width
        final int heightRatio = Math.round((float) height / (float) reqHeight);
        final int widthRatio = Math.round((float) width / (float) reqWidth);
 
        // Choose the smallest ratio as inSampleSize value, this will guarantee
        // a final image with both dimensions larger than or equal to the
        // requested height and width.
        inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
    }
 
    return inSampleSize;
}
    public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
            int reqWidth, int reqHeight) {
 
        // First decode with inJustDecodeBounds=true to check dimensions
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeResource(res, resId, options);
 
        // Calculate inSampleSize
        options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
 
        // Decode bitmap with inSampleSize set
        options.inJustDecodeBounds = false;
        return BitmapFactory.decodeResource(res, resId, options);
    }
Добавлено через 5 минут
Теперь всё работает. Но возникла проблема. Как вы могли понять в предыдущих участков кода. Я на активити динамически добавляю имейджбатоны и текствю. И как результат. на активити полный безпорядок. а текствюшек вообще не видно. Помогите. Как поправить?
0
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
23.02.2013, 00:09 8
Цитата Сообщение от tach Посмотреть сообщение
Смотрел примеры. Как и следовало ожидать они не рабочие.
какие конкретно нерабочие? будем разбиратся.
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
24.02.2013, 05:22  [ТС] 9
Цитата Сообщение от YAUHEN Посмотреть сообщение
какие конкретно нерабочие? будем разбиратся.
FragmentPagerSupport
0
146 / 129 / 6
Регистрация: 29.07.2008
Сообщений: 506
24.02.2013, 12:49 10
А где вы брали код примера? Тот что поставляет гугл - вполне рабочий. Да и странно было бы если бы они поставляли нерабочий.
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
25.02.2013, 16:34  [ТС] 11
У меня проблеммы с вот этим куском
mAdapter = new MyAdapter(getSupportFragmentManager());
The method getSupportFragmentManager() is undefined for the type FragmentPagerSupport
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.02.2013, 17:03 12
FragmentPagerSupport extends FragmentActivity?
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
25.02.2013, 19:33  [ТС] 13
я не розбирался. Взял код и запустил
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.02.2013, 19:55 14
откуда взяли?
0
0 / 0 / 0
Регистрация: 20.02.2013
Сообщений: 16
26.02.2013, 00:53  [ТС] 15
Папка в которой установлен Андроид\android-sdk\extras\android\support\samples\Support4Demos\src\com\example\android\support v4\app
0
26.02.2013, 00:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.02.2013, 00:53
Помогаю со студенческими работами здесь

Поворот ViewPager
Как повернуть ViewPager на 90 градусов при заблокированной портретной ориентации? Применяю...

ViewPager и ListView
Вообще пытаюсь сделать пролистывающиеся редактируемые списки. Для этого использую ViewPager и...

ViewPager и Tab
Здравствуйте. Есть приложение на андроид C# (файл проекта в приложении). Он нормально...

GridView и ViewPager
Всем привет. У меня есть GridView, в котором можно, конечно же, тыкать на пункты списка и...

ViewPager автодаводка
Подскажите пожалст ,как можно изменить автодаводку уменьшить или увеличить?

ViewPager и TextView
В приложении ViewPager и TextView. Все работает. Теперь нужно впихнуть во ViewPager 2 TextView....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru