Intereting Posts
Не удалось установить плагин ADT в Eclipse – сообщение об ошибке «нарушает контракт» Назначение параметра args getLoaderManager (). InitLoader (…, …, …)? Анимация на панели инструментов Android AppCompat-v21 ImageView с растровыми изображениями, загруженными с URL (режим повторной черепицы) Как я могу узнать, какое намерение запускается сервис (а не в моем приложении)? Android ndk 8b Не удается загрузить библиотеку Определение процентной ширины для LinearLayout? Отключение хроматической экономии данных при отладке Обновляется ли SyncAdapter, когда AccountManager удаляет учетную запись? Android-студия загружает старый apk при изменении имени project.archivesBaseName ClassCastException при извлечении данных из пакета на Android Мягкая клавиатура без нажатия клавиш EditText & detecting Обработчики Android – межпоточная связь Как изменить цвет фона кнопки переключения на Android Существует ли замена виджета Gallery с View recycling?

Как повторить шаблон в пользовательском представлении до границ?

Я хочу ограничить шаблон повторения набора случайных маленьких шаблонов определенным регионом. Я создаю один объект (CustomView) с помощью canvas, у меня есть знания, как повторять шаблон на макете с помощью xml-кода.

<bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/patterntwo" android:tileMode="repeat" /> 

Это не работает для холста.

Я по существу хочу использовать растровое изображение в качестве фонового изображения для пользовательского вида и хотел бы повторить растровое изображение как в направлениях зрения X, так и Y.

Посмотреть это изображение

Введите описание изображения здесь

Попробуйте с помощью этого кода: –

 paint = new Paint(Paint.FILTER_BITMAP_FLAG); Shader mShader1 = new BitmapShader(bitmap, Shader.TileMode.REPEAT,Shader.TileMode.REPEAT); paint.setShader(mShader1); 

Вы можете сделать свой пользовательский компонент с повторяющимся растровым фоном:

 BitmapDrawable bitmapBg = new BitmapDrawable(BitmapFactory.decodeResource( getResources(), R.drawable.repeatbg)); bitmapBg.setTileModeX(Shader.TileMode.REPEAT); image.setBackgroundDrawable(bitmapBg); 

И вы можете сделать маску с изображением, которое вы хотите, как этот треугольник и ваш bg.

 public static Bitmap getMaskedContactImage(Context context, Bitmap contactImageBitmap, int maskToBeApplied) { Bitmap mask = BitmapFactory.decodeResource(context.getResources(), maskToBeApplied); Bitmap output = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888); final Rect finalRect = new Rect(0, 0, contactImageBitmap.getWidth(), contactImageBitmap.getHeight()); final Rect originRect = new Rect(0, 0, mask.getWidth(), mask.getHeight()); Canvas canvas = new Canvas(output); Paint xferPaint = new Paint(Paint.ANTI_ALIAS_FLAG); xferPaint.setColor(Color.BLACK); xferPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); canvas.drawBitmap(contactImageBitmap, finalRect, originRect, null); canvas.drawBitmap(mask, originRect, originRect, xferPaint); contactImageBitmap.recycle(); mask.recycle(); return output; } 

Это будет использовать маску, где черный цвет является окончательным изображением.

Если бы я не понял неправильно, это может достичь того, что вы показываете в захвате.

С уважением, Алекс