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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
#1

Картинка по ширине и не сжата - Программирование Android

24.07.2013, 23:53. Просмотров 657. Ответов 9
Метки нет (Все метки)

Скажите пожалуйста. Загружаю картинки из интернета в listView и они конечно разного размера загружаются. Каким образом можно сделать так чтобы картинка всегда была по ширине экрана а высота уже в зависимости от того как она расширена по сторонам, но чтобы пропорции картинки не исказились ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2013, 23:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Картинка по ширине и не сжата (Программирование Android):

Расположение SeekBar: чтобы картинка на заднем плане была все также растянута по всей высоте и ширине экрана - Программирование Android
Всем доброго времени суток! Возник следующий вопрос: допустим есть LinearLayout и в нем ImageView, растянутый по всей высоте и ширине. Как...

как сделать высоту равной ширине при ширине 100% - HTML, CSS
как можно сделать элемент(например таблицу) квадратным, т.е. высота равна ширине(ширина 100%)

Нужно, чтобы картинка на сайте растягивалась под размер экрана, как это сделать ? (Пропорционально, картинка высокого расширения и качества) - HTML, CSS
binding text

Есть сайт на Jommla 1.7. В нем сбоку модуль (блок). В этом модуле есть картинка. Как сделать так, чтобы автоматически обновлялась только картинка? - HTML, CSS
http://stost.ru/ny/ny.php - вот картинка, может, кому пригодится) типа сколько до НГ осталось)

Выравнивание по ширине - HTML, CSS
Имеется таблица, в одной из ячеек которой содержится ряд картинок. С выравниванием по центру интервалы получаются сильно разные, хотел...

Выравнивание по ширине - C#
:friends:Дорогой всем!!! Очень нужны помогать как правильно только "Word.RTF" Вообще работа отлично,Но большой есть проблема выравнивание...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.07.2013, 23:55 #2
поэкспериментируйте с android:scaleType
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
24.07.2013, 23:58  [ТС] #3
Цитата Сообщение от V0v1k Посмотреть сообщение
поэкспериментируйте с android:scaleType
пробовал - подошло более менее android:scaleType="fitXY", но оно растягивается по ширине как надо, а по высоте сжимает и идёт искажение. Как бы чтобы оно ещё и по высоте растягивало сколько нужно?
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.07.2013, 00:00 #4
та вроде "fitXY" растягивает до предела обе стороны, а если нужно только ширину, тогда наверное "fitY", если есть такое.
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
25.07.2013, 00:10  [ТС] #5
Цитата Сообщение от V0v1k Посмотреть сообщение
та вроде "fitXY" растягивает до предела обе стороны, а если нужно только ширину, тогда наверное "fitY", если есть такое.
да почему-то не растягивает и "fitY" нет такого только вместе fitXY".
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.07.2013, 00:21 #6
если ни один scaleType не подошел, тогда нужно писать кастомный дравейбл.
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
25.07.2013, 02:53  [ТС] #7
Цитата Сообщение от V0v1k Посмотреть сообщение
если ни один scaleType не подошел, тогда нужно писать кастомный дравейбл.
а можете привести пример?

Добавлено через 1 час 32 минуты
а то я не делал никогда, кастомный дравейбл.
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.07.2013, 03:08 #8
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
public class Square extends Drawable
{
    private final Paint mPaint;
    private final RectF mRect;
 
    public Square()
    {
        mPaint = new Paint();
        mRect = new RectF();
    }
 
    @Override
    public void draw(Canvas canvas)
    {
        // Set the correct values in the Paint
        mPaint.setARGB(255, 255, 0, 0);
        mPaint.setStrokeWidth(2);
        mPaint.setStyle(Style.FILL);
 
        // Adjust the rect
        mRect.left = 15.0f;
        mRect.top = 50.0f;
        mRect.right = 55.0f;
        mRect.bottom = 75.0f;
 
        // Draw it
        canvas.drawRoundRect(mRect, 0.5f, 0.5f, mPaint);
    }
 
    @Override
    public int getOpacity()
    {
        return PixelFormat.OPAQUE;
    }
 
    @Override
    public void setAlpha(int arg0)
    {
    }
 
    @Override
    public void setColorFilter(ColorFilter arg0)
    {
    }
}
Добавлено через 7 минут
вот пример реализации аналога android:scaleType="centerCrop" в кастомном View
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
@Override
       protected void onDraw(Canvas canvas) {
             int bitmapWidth = mBitmap .getWidth();
             int bitmapHeight = mBitmap .getHeight();
             int viewWidth = getWidth();
             int viewHeight = getHeight();
             float widthRatio = (float) viewWidth / bitmapWidth;
             float heightRatio = (float) viewHeight / bitmapHeight;
 
             mDrawRect.left = 0;
             mDrawRect.top = 0;
             mDrawRect.right = bitmapWidth;
             mDrawRect.bottom = bitmapHeight;
 
             // scaling
             if (widthRatio != 1 || heightRatio != 1) {
                   float biggestRatio = widthRatio > heightRatio ? widthRatio
                              : heightRatio;
                   mDrawRect.right = (int) ( mRect.right * biggestRatio);
                   mDrawRect.bottom = (int) ( mRect.bottom * biggestRatio);
            }
 
             // centering
             if (mDrawRect .width() > viewWidth) {
                   int widthDifference = mDrawRect .width() - viewWidth;
                   int offset = widthDifference / 2;
                   mDrawRect.left -= offset;
                   mDrawRect.right -= offset;
            }
 
             if (mDrawRect .height() > viewHeight) {
                   int heightDifference = mDrawRect .height() - viewHeight;
                   int offset = heightDifference / 2;
                   mDrawRect.top -= offset;
                   mDrawRect.bottom -= offset;
            }
 
            canvas.drawBitmap( mBitmap, null , mDrawRect , null);
      }
1
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
25.07.2013, 05:27  [ТС] #9
огромное спасибо, а вот теперь главный вопрос как это применять?
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.07.2013, 11:12 #10
первый пример:
Java
1
imageView.setImageDrawable(new Square());
второй: просто копируете в свой кастомный View.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.07.2013, 11:12
Привет! Вот еще темы с ответами:

Выравнивание по ширине - MS Word
Как убрать большие разрывы между словами при выравнивании по ширине? Автоматическая расстановка переносов не помогает, выравнивание...

Выравнивание по ширине - Delphi
Запарился уже делать пробелы тыкает только по нахождению первого пробела, а остальные слова пропускает, что не так? procedure...

выравнивание по ширине - C++
составить программу, создающую другой текстовый файл, в котором строки из первого файла выровнены по ширине. Выравнивание производить за...

Растянуть ul li по ширине - HTML, CSS
Есть див times, в нем список Как мне его растянуть по ширине дива? <div id='times'> <ul id="ul_times"> <li><a...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.07.2013, 11:12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru