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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Список с разными и сложными элементами http://www.cyberforum.ru/android-dev/thread1664168.html
Здравствуйте, дорогие форумчане. Задумал я тут создать мобильный клиент для VK и у меня появились проблемы. Мне нужно отобразить список новостей. Так как их много, логично выводить их как-то в виде...
Программирование Android GreenDao ORM query метод Здравствуйте, использую для работы с БД GreenDao ORM и у меня возник вопрос: у меня есть вот примерно такой RecyclerView (см. картинку). Каждый item имеет свой id начиная с 0. Вопрос: как мне в... http://www.cyberforum.ru/android-dev/thread1664122.html
Программирование Android RSS и новостное приложение
Суть:Нужно простое новостное приложние, которое грубо транслирует RSS. Скажите, как это грамотно организовать. Я начинающий и знания пока что малы. Скажите какие знания понадобятся для реализации...
Получение публикаций пользователя facebook Программирование Android
Всем привет, прошу вашей помощи, в поиске решения такой задачи: необходимо получить все публикации пользователя в facebook-е, я сделал авторизацию пользователя с помощью facebook api, все проходит...
Программирование Android Прочитать часть файла http://www.cyberforum.ru/android-dev/thread1663980.html
Нужно открыть файл и, начиная от 4-го байта, все записать в массив byte. Такой код записывает все, но начиная с 4-го байта в массиве: InputStream is = new FileInputStream(APP_PREFERENCES_NAME);...
Программирование Android Пропущенные звонки и СМС Я вывожу на экран количество пропущенных звонков и СМС, но информация выводятся только после 2-го пропущенного уведомления. Как я понял по логам, нумерация начинается с 0-я. Так ли это? Я не смог... подробнее

Показать сообщение отдельно
Pablito
2494 / 1939 / 605
Регистрация: 12.05.2014
Сообщений: 6,799
Завершенные тесты: 1
17.02.2016, 13:09
там эпопея с этими повторяющимися битмапами
я сделал так
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 байтПовторение фоновой картинки с указанием размера
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru