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

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

Войти
Регистрация
Восстановить пароль
 
S@SH@
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 50
#1

Повторение фоновой картинки с указанием размера - Программирование Android

17.02.2016, 10:04. Просмотров 188. Ответов 2
Метки нет (Все метки)

Данный ImageView
XML
1
2
3
4
5
<ImageView
            android:layout_width="match_parent"
            android:layout_height="30dp"
            android:layout_marginTop="17dp"
            />
Нужно заполнить повторяющимся изображением, оригинальные размеры изображения 82x189, ее надо уменьшить пропорционально под ImageView.
В данном коде повтор работает, но размеры игнорируются
Java
1
2
3
4
5
BitmapDrawable bmp = (BitmapDrawable) getResources().getDrawable(R.drawable.myimage);
        bmp.mutate();
        bmp.setBounds(0, 0, 15, 30);
        bmp.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
        myImageView.setBackgroundDrawable(bmp);
Помогите пожалуйста, бьюсь второй день
Вместо ImageView можно использовать другой элемент, главное чтобы работало.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2016, 10:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Повторение фоновой картинки с указанием размера (Программирование Android):

Уменьшение размера файла картинки - Программирование Android
Как можно уменьшить размер файла (Картинки) ? Например на входе картинка весит 2мб, а после &quot;манипуляций&quot; должно остаться 100кб.. ...

В listView в item отображать картинки одинакового размера - Программирование Android
загружаю картинки с сервера, они разных размеров. Скажите как в listView в item показывать картинки одинакового размера (можно обрезать,...

Борьба с фоновой музыкой - Программирование Android
Моя задача - добавить в игру фоновую музыку. Пробовала http://www.cyberforum.ru/android-dev/thread868122.html так и...

Проблемы с ImageView и фоновой музыкой - Программирование Android
Здравствуйте, форумчане. Занимаюсь написанием игры.. Вообще, это мой первый опыт написания под андроид)) Но приходится вертеться. Итак,...

Событие выхода и фоновой работы - Программирование Android
Люди не подскажите как отследить событие &quot;выход&quot; и &quot;фон&quot;?

Какой сервис нужен для фоновой работы (при выключенном приложении)? - Программирование Android
Здравствуйте! Подскажите, какими средствами стоит реализовывать следующее: Необходимо сделать такой сервис, который бы запускался не...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2473 / 1918 / 595
Регистрация: 12.05.2014
Сообщений: 6,742
Завершенные тесты: 1
17.02.2016, 13:09 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
там эпопея с этими повторяющимися битмапами
я сделал так
1. кладем картинку в drawable, в моем примере она называется img
2. создаем кастомное вью
Кликните здесь для просмотра всего текста
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
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Shader;
import android.util.AttributeSet;
import android.view.View;
 
public class TiledView extends View {
 
    private final Rect rect = new Rect();
    private final Paint paint = new Paint();
    private Bitmap bitmap;
    private BitmapShader shader;
 
    public TiledView(Context context) {
        super(context);
        init();
    }
 
    public TiledView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }
 
    private void init() {
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img); // img это картика которую надо натянуть по горизонтали
    }
 
    // что бы не ругался Lint, ничего стрешного, этот метод все равно вызывается только при изменении размера окна
    @SuppressLint("DrawAllocation")
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        int width = getMeasuredWidth();
        int height = getMeasuredHeight();
        float scale = (float) height / bitmap.getHeight();
        int dstWidth = (int) (bitmap.getWidth() * scale);
        int dstHeight = (int) (bitmap.getHeight() * scale);
        final Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, dstWidth, dstHeight, false);
        shader = new BitmapShader(scaledBitmap, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
        setMeasuredDimension(width, height);
    }
 
    @Override
    protected void onDraw(Canvas canvas) {
        getDrawingRect(rect);
        paint.setShader(shader);
        canvas.drawRect(rect, paint);
    }
}

3. указываем его в разметке, название проекта заменить на свое
XML
1
2
3
4
    <com.example.myapplication.TiledView
        android:layout_width="match_parent"
        android:layout_height="30dp"
        android:layout_marginTop="17dp" />
4. PROFIT
Название: img.png
Просмотров: 19

Размер: 362 байтПовторение фоновой картинки с указанием размера
S@SH@
0 / 0 / 0
Регистрация: 08.02.2013
Сообщений: 50
17.02.2016, 15:34  [ТС] #3
Паблито, работает, спасибо Вам !
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2016, 15:34
Привет! Вот еще темы с ответами:

масштабирование фоновой картинки - HTML, CSS
Скажите ,как масштабировать фоновую картинку ,средствами CSS. Когда пишу так: body{background-image:url(foto.jpg); ...

Пробелы в имени фоновой картинки - HTML, CSS
Друзья, есть у меня динамическая страничка на которой размещены фотографии, которые загрузил пользователь. Каждая фотка лежит в отдельном...

Задать прозрачность фоновой картинки - HTML, CSS
background-image:url('../images/g.png') ; Нужно добавить параметр прозрачность 0.2 (только для картинки). Как?

Не показывается Label из-за фоновой картинки - Delphi
такой вопрос мне надо установить картинку на задний фон но у меня label не показывает,можете подсказать с чем это связано?


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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