, поэтому я пытаюсь найти область текущего изображения в ImageView и заполнить эту область другим изображением. Вот исходное изображение Empty Circle inside an imageView. Образ изображения имеет обратный круг внутри. Затем я пытаюсь сделать это примерно так: Circle filled with image inside an ImageView, когда пользователь выбирает изображение. Я не хочу вручную рисовать изображение круга. Я просто надеюсь заполнить регион другим изображением. Я пробовал SRC_IN
метод от AlphaComposite
, но для android, я не могу конвертировать из BitMap
в graphics2D
. Если кто-то знает, как это решить, используя BitmapFactory
в android, я был бы очень признателен за вашу помощь. Спасибо.Как заполнить область, выделенную чертежом, с помощью изображения с другим чертежом?
ответ
Другое решение, помимо растровых изображений, может быть слишком простым для того, что вы пытаетесь достичь, иначе я думаю, что это произошло бы с вами. Я просто указываю на это, если у вас есть «слепота кода» и вы пытаетесь переусердствовать над решением, потому что вы слишком долго работали над этим (мы все это сделали)
Это должно быть что изображение в круге/фигуре, сохраненное как png, с областью, которую вы хотите заполнить, прозрачно, затем установите ее как рисованное для ImageView (и т. д.), затем в RelativeLayout заложите это представление на изображение, которое хотите заполнить область, и примените прозрачный фон в виде формы ИЛИ просто установите заливочное изображение в качестве фона для представления формы.
Да, но если я сделаю прозрачную форму, мне понадобится 'getTransparentRegion()'. Согласно документам, этот метод был добавлен с API 1. По умолчанию он возвращает null. Если бы я захотел использовать этот метод для класса «Drawable», мне нужно было бы переопределить его и предоставить метод для возврата области растрового изображения, которая является прозрачной. Я рассмотрел некоторые подобные проблемы, но не нашел бы того, что может хорошо выполнить эту операцию (метод других может обнаружить только часть прозрачной области). Благодарю. –
См. Это http://stackoverflow.com/q/16208365/2556111 – ramaral
Привет ramaral, спасибо за ссылку, но в ссылке он использует «Canvas» для рисования области круга, а затем использует 'canvas.drawBitmap (sbmp, rect, rect, paint); 'рисовать' ImageView' с растровым рисунком внутри. Хотя этот метод будет работать для легко определенной формы. То, что я ищу, будет гибким для разных форм (не совсем легко рисовать). Образ круга, который у меня выше, является простым примером. Вместо этого я ищу метод «заполнения существующего рисуемого изображения с помощью нового рисунка». И не переформатируйте «ImageView». Однако я ценю вашу помощь. Благодарю. –