Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как добавить поддержку прокрутки в собственном виджете? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Таймер не работает http://www.cyberforum.ru/android-dev/thread650137.html
сколько не пытался сделать таймер на androide приложение у меня всегда крешевалась на этой строке glava.setText(""+tr); пробывал theard,AsyncTask нечего не выходит:( подскажите как сделать так...
Программирование Android Нужен инженерный калькулятор под Андроид Всем привет! Мне нужен инженерный кальк под Андроид, который бы делал следующие операции: все логические (И, НЕ, ХОР, ИЛИ, сдвиги туда-сюда) а также целочисленный остаток от деления (%). Ну... http://www.cyberforum.ru/android-dev/thread650106.html
Программирование Android Портирование windows игры на Android?
Уже за рание искал в гугле, нечего конкретного не нашол. Есть несколько не плохих игр написанных на xna и directx пару лет назад. Очень хочу портировать их на андройд :-D что подскажите и раскажите?
MP3 Music Download Manager Программирование Android
http://s13.postimage.org/wuqzx5o1f/logo.png MP3 Music Download Manager C помощью этого приложения вы можете совершенно БЕСПЛАТНО прослушивать и скачивать ваши любимые аудио треки. На данный...
Программирование Android Неуправляемый onDraw в отдельном View компоненте http://www.cyberforum.ru/android-dev/thread649603.html
Здравствуйте, у меня такая проблема -> не контролируемый onDraw (я убрал invalidate со всех функций), везде читал об этом, уже потерял все надежды найти причину такого бесконечного вызова onDraw. В...
Программирование Android Нужна Программа! Всем привет. Нужна программа сервер-клиент. Клиент должен работать на Android и желательно Symbian OS. Нужно получать GPS координаты от клиента. Хорошее вознаграждение! Предложения в личку.... подробнее

Показать сообщение отдельно
Creative
22 / 8 / 1
Регистрация: 13.07.2012
Сообщений: 66
12.09.2012, 12:39  [ТС]
я уже догадался, спасибо, теперь вопрос в другом, как свой клас в XML подключить? прочитал это вот http://docs.xamarin.com/android/adva...ws_in_a_layout , сделал как там написано но все время получаю ошибку Binary XML file line #8: Error inflating class com.balka.SolutionPanel...

XML
1
2
3
4
5
6
7
8
9
10
11
12
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        
        android:id="@+id/scrollView1"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
 
        <com.balka.SolutionPanel
            android:id="@+id/solution"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </com.balka.SolutionPanel>
    </ScrollView>
Добавлено через 15 часов 39 минут
После продолжительной борьбы удалось добится следующего:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" >
 
    <HorizontalScrollView
        android:id="@+id/horizontalScrollView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:fillViewport="true" >
 
        <com.balka.SolutionPanel
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:isScrollContainer="true" />
    </HorizontalScrollView>
 
</ScrollView>
вот сам класс SolutionPanel:

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
public class SolutionPanel extends View {
    public SolutionPanel(Context context, AttributeSet attrs){
        super(context, attrs);          
    }
    
    
    
    public boolean onTouchEvent(MotionEvent event){//обработка событий тачскрина
         
        float x = (Float)event.getX();//актуализируем координаты
        float y = (Float)event.getY();
        int Action = event.getAction();//определяем тип события
        
        SolutionActivity.sv.scrollBy(0, -50);//Здесь я хачу чтоб при касании экрана происходила прокрутка
        
        invalidate();
        
        Log.v("AAA", "X=" + x + " Y=" + y + " Action=" + Action + " " + SolutionActivity.sv.toString());
        
    return true;    
    }
    
    Paint paint = new Paint();
    
    @Override
    public void onDraw(Canvas canvas){
        
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.BLUE);
        canvas.drawPaint(paint);
        canvas.drawCircle(60, 70, 10, paint);
        
        paint.setColor(Color.YELLOW);
        
        canvas.drawCircle(100, 400, 80, paint);
        
        
        
    }
}
вот сама активити, которая все это юзает:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class SolutionActivity extends Activity {
    public static ScrollView sv;
    
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);              
        setContentView(R.layout.solution_layout);
        
        sv = (ScrollView)findViewById(R.id.scrollView1);
        
        Log.v("AAA", sv.toString());
    }
        
    
    
}

вот что из этого всего получается: http://s2.ipicture.ru/uploads/20120912/nSCnW7vY.bmp

очень даже симпатично как по мне)) Однако прокрутки при касании экрана не происходит... В чем причина?? может потому что канва заполняет только облать экрана? дальше обрывается и как бы нечего прокручивать?? как это можно испарвить?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru