Intereting Posts
Поддержка Android v7 MediaRouter иногда не работает должным образом Цвет штриха отображается для 0 значений в AchartEngine, android Android edittext minmum и максимальное значение Используйте портативный принтер bluetooth с Android Руководство по реализации PagerSlidingTabStrip Android-файл загрузки + сообщение о статусе, замедляющее телефон Желательно ли использовать Activity.onAttachFragment или Fragment.onAttach для связи между Activity и вложенным фрагментом? LiveWallpaper: java.lang.IllegalStateException: поверхность уже выпущена Android Hierarchy Viewer не показывает показатели эффективности для просмотра Растровое изображение Recycle ImageView Как протестировать обновление базы данных sqlite перед загрузкой новой версии моего приложения в игровой магазин в Android Теоретический вопрос: загрузить внешний файл XML-Layout в Android Неизвестная ошибка URI в insertImage Xiaomi не получает уведомления, когда приложение не работает Свободная память из AnimationDrawable

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

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

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

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

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

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

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

Solutions Collecting From Web of "Как повторить шаблон в пользовательском представлении до границ?"

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

 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; } 

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

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

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