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

Как сделать границы в пространстве ImageView при прокрутке изображения - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android DexClassLoader не работает http://www.cyberforum.ru/android-dev/thread1624385.html
Добрый день. Возникла проблема с использованием DexClassLoader. Тестирование приложения на эмуляторах и на моих устройствах проходит без проблем, но обнаружил, что примерно на 30% устройств возникает проблема. Для загрузки класса из .dex (который упакован в apk) использую следующий код: PRIVATE_CACHE = context.getCacheDir().getAbsolutePath(); DexLoader = new DexClassLoader(PRIVATE_CACHE +...
Программирование Android The application may be doing too much work on its main thread Ну елки палки, это что еще такое ? :) В приложении запускаю камеру и ловлю результат PhotoObject current_photoObj ; // мой класс для работы с файлом фотки current_photoObj = new PhotoObject(); protected void camera_start(){ Intent takePictureIntent = new Intent( android.provider.MediaStore.ACTION_IMAGE_CAPTURE ); takePictureIntent.putExtra( MediaStore.EXTRA_OUTPUT,... http://www.cyberforum.ru/android-dev/thread1624335.html
Программирование Android Перевод чисел в разные системы счисления
Добрый день, когда то нашел код для перевода чисел в разные системы, но он на С# я его там для своей программы использовал, сейчас решим сделать чтобы и на андроид работало, но так как я понял я неправильно переделал код, так как программа работает некорректно, посмотрите оригинальный код пожалуйста: /// <summary> /// Переводит из деятичной системы счисления в систему счисления с...
Первая игра 4х4 Программирование Android
Есть типа игра, в которой нужно нажать на все кнопки с числами по возрастанию. У меня 16 кнопок, я решил реализовать всё так: package com.example.root.v_1; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.Toast;
Программирование Android Как добавить свой шрифт в Android Studio? http://www.cyberforum.ru/android-dev/thread1623687.html
Как добавить шрифт в AndroidStudio, чтобы потом рисовать им методом drawText? Например, я хочу добавить comic sans ms
Программирование Android Вынести версию из build.gradle во внешний файл Гуру, подскажите возможно ли подобное? Вот кусок, который НЕ работает! (выдает You should define VERSION_1 and VERSION_2 in gradle.properties) defaultConfig { applicationId 'com.my' minSdkVersion 14 targetSdkVersion 14 signingConfig signingConfigs.key_config // VERSION подробнее

Показать сообщение отдельно
tonymontana
0 / 0 / 0
Регистрация: 08.03.2013
Сообщений: 29
28.12.2015, 19:14  [ТС]
Всё равно выходит за границы
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
import android.os.Bundle;
import android.view.MotionEvent;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
 
public class MainActivity extends AppCompatActivity {
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
 
        setContentView(R.layout.activity_main);
 
 
        Resources res=getResources();
        final Bitmap mBitmap = BitmapFactory.decodeResource(res, R.drawable.photo);
        BitmapDrawable bDrawable = new BitmapDrawable(res, mBitmap);
 
        int bitmapWidth = bDrawable.getIntrinsicWidth();
        int bitmapHeight = bDrawable.getIntrinsicHeight();
        @SuppressWarnings("deprecation")
        int screenWidth = this.getWindowManager().getDefaultDisplay().getWidth();
        @SuppressWarnings("deprecation")
        int screenHeight = this.getWindowManager().getDefaultDisplay().getHeight();
 
 
 
        final ImageView switcherView = (ImageView) this.findViewById(R.id.img);
 
 
        int maxX = (int)((bitmapWidth / 2) - (screenWidth / 2));
        int maxY = (int)((bitmapHeight / 2) - (screenHeight / 2));
 
        final int maxLeft = (maxX * -1);
        final int maxRight = maxX;
        final int maxTop = (maxY * -1);
        final int maxBottom = maxY;
 
       
        switcherView.setOnTouchListener(new View.OnTouchListener()
        {
            float downX, downY;
            int totalX, totalY;
            int scrollByX, scrollByY;
            public boolean onTouch(View view, MotionEvent event)
            {
                float currentX, currentY;
                switch (event.getAction())
                {
                    case MotionEvent.ACTION_DOWN:
                        downX = event.getX();
                        downY = event.getY();
                        break;
 
                    case MotionEvent.ACTION_MOVE:
                        currentX = event.getX();
                        currentY = event.getY();
                        scrollByX = (int)(downX - currentX);
                        scrollByY = (int)(downY - currentY);
 
                        if (currentX > downX)
                        {
                            if (totalX == maxLeft)
                            {
                                scrollByX = 0;
                            }
                            if (totalX > maxLeft)
                            {
                                totalX = totalX + scrollByX;
                            }
                            if (totalX < maxLeft)
                            {
                                scrollByX = maxLeft - (totalX - scrollByX);
                                totalX = maxLeft;
                            }
                        }
 
                 
                        if (currentX < downX)
                        {
                            if (totalX == maxRight)
                            {
                                scrollByX = 0;
                            }
                            if (totalX < maxRight)
                            {
                                totalX = totalX + scrollByX;
                            }
                            if (totalX > maxRight)
                            {
                                scrollByX = maxRight - (totalX - scrollByX);
                                totalX = maxRight;
                            }
                        }
 
 
                        if (currentY > downY)
                        {
                            if (totalY == maxTop)
                            {
                                scrollByY = 0;
                            }
                            if (totalY > maxTop)
                            {
                                totalY = totalY + scrollByY;
                            }
                            if (totalY < maxTop)
                            {
                                scrollByY = maxTop - (totalY - scrollByY);
                                totalY = maxTop;
                            }
                        }
 
        
                        if (currentY < downY)
                        {
                            if (totalY == maxBottom)
                            {
                                scrollByY = 0;
                            }
                            if (totalY < maxBottom)
                            {
                                totalY = totalY + scrollByY;
                            }
                            if (totalY > maxBottom)
                            {
                                scrollByY = maxBottom - (totalY - scrollByY);
                                totalY = maxBottom;
                            }
                        }
 
                        switcherView.scrollBy(scrollByX, scrollByY);
                        downX = currentX;
                        downY = currentY;
                        break;
 
                }
 
                return true;
            }
        });
    }
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru