Я пытаюсь показать округленное изображение, которое я получаю прямо из Интернета. Я использовал приведенный ниже код, чтобы создать круглую маску, получить изображение из Интернета, а затем попытался либо установить маску на изображении, либо на сам ярлык. Ни один из этих подходов не работал. Если я удалю маску, изображение будет отображаться в порядке. Если я сохраню код для установки маски, то все, что я вижу, это пустой белый круг.Codename Одно закругленное изображение из интернет-источника
У меня есть идея, что если применить маску к самому изображению, это может не вступить в силу, поскольку изображение не было загружено во время применения маски.
Но, похоже, я не понимаю, почему вызов setMask
на этикетке также не работает.
// Create MASK
Image maskImage = Image.createImage(w, l);
Graphics g = maskImage.getGraphics();
g.setAntiAliased(true);
g.setColor(0x000000);
g.fillRect(0, 0, w, l);
g.setColor(0xffffff);
g.fillArc(0, 0, w, l, 0, 360);
Object mask = maskImage.createMask();
// GET IMAGE
com.cloudinary.Cloudinary cloudinary = new com.cloudinary.Cloudinary(ObjectUtils.asMap(
"cloud_name", "REMOVED",
"api_key", "REMOVED",
"api_secret", "REMOVED"));
// Disable private CDN URLs as this doesn't seem to work with free accounts
cloudinary.config.privateCdn = false;
Image placeholder = Image.createImage(150, 150);
EncodedImage encImage = EncodedImage.createFromImage(placeholder, false);
Image img2 = cloudinary.url()
.type("fetch") // Says we are fetching an image
.format("jpg") // We want it to be a jpg
.transformation(
new Transformation()
.radius("max").width(150).height(150).crop("thumb").gravity("faces").image(encImage, "http://upload.wikimedia.org/wikipedia/commons/4/46/Jennifer_Lawrence_at_the_83rd_Academy_Awards.jpg");
Label label = new Label(img2);
label.setMask(mask); // also tried to do img2.applyMask(mask); before passing img2
Это имеет смысл. У меня создалось впечатление, что это проблема загрузки изображений. Я воспользуюсь вашим предложением. Я думаю, что это правильный путь. Благодаря!! – 3lix