2015-03-27 3 views
0

Я создаю приложение в андроид для кружек, как этогоОбертывание изображения вокруг объекта в андроиде

enter image description here

Я знаю, как сделать все, кроме оберточного изображения вокруг объекта. Это была бы простая задача, если бы мне пришлось складывать изображение поверх другого, если они были плоскими, но если это круглый объект, как это кружка, это довольно сложно.

Я думал о создании объектного файла obj в блендере и визуализации изображения на нем в OpenGL или Unity. Размер файла obj равен 5 МБ. И я не могу использовать этот большой файл в своем приложении.

Есть ли альтернативный хороший подход для этого? Если там есть ссылка или пример для него

+0

Вы делаете это в Android или внутри Unity Engine? – Aizen

+0

@aizen Я хотел бы сделать в android не единство, возможно ли это? – Fahim

+0

Возможно, конечно, вам придется использовать для этого третью сторону. OpenGl может это сделать и unit3d. Проблема с opengl, имеющая большой файл для obj, состоит в том, что файл obj фактически не сжат. Добавление изображения должно реализовывать компонент надписей, поэтому он будет как один с объектом obj, и вам не нужно специально писать кучу кода, чтобы он выглядел как прикрепленный к нему. Я сейчас в таблетке, поэтому у меня нет ресурсов. – Aizen

ответ

1

Использование таким образом

работа вокруг него, делая маскировку над изображением

ImageView mImageView= (ImageView)findViewById(R.id.imageview_id); 
Bitmap original = BitmapFactory.decodeResource(getResources(),R.drawable.content_image); 
Bitmap mask = BitmapFactory.decodeResource(getResources(),R.drawable.mask); 
Bitmap result = Bitmap.createBitmap(mask.getWidth(), mask.getHeight(), Config.ARGB_8888); 
Canvas mCanvas = new Canvas(result); 
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN)); 
mCanvas.drawBitmap(original, 0, 0, null); 
mCanvas.drawBitmap(mask, 0, 0, paint); paint.setXfermode(null); 
mImageView.setImageBitmap(result); 
mImageView.setScaleType(ScaleType.CENTER); 
mImageView.setBackgroundResource(R.drawable.background_frame); 

Как уже упоминалось здесь Masking(crop) image in frame

0

Я полагаю, что это правильный путь, но использование чистого OpenGL затруднено. Я использовал LibGDX для простого 3D-моделирования.

Смежные вопросы