2013-02-16 2 views
0

Я хочу загрузить 3d-файл .obj в живые обои и анимировать его. Я использую библиотеку RAJAWALI для ее загрузки. проблема в том, что файл 3d obj загружен и анимирован успешно, но загрузка фонового изображения не загружается в некоторые устройства Android. код выглядит следующим образом:Загрузите файл 3d .obj и добавьте фоновое изображение, чтобы жить обоими в android?

protected void initScene() { 


    DirectionalLight localDirectionalLight = new DirectionalLight(0.0F, 0.6F, 0.4F); 
localDirectionalLight.setPower(3.0F); 
PointLight mLight = new PointLight(); 
mLight.setPosition(0, 0, 0); 
mLight.setPower(13); 
Plane plane = new Plane(70, 70, 1, 1, 1); 
plane.addLight(mLight); 
plane.setMaterial(new SimpleMaterial()); 
plane.addTexture(mTextureManager.addTexture(BitmapFactory.decodeResource(mContext.getResources(), R.drawable.pozadina))); 
addChild(plane);  
plane.setZ(10); 

    try 
    { 
     ObjParser localObjParser = new ObjParser(this.mContext.getResources(), this.mTextureManager, R.raw.allah); 
     localObjParser.parse(); 
     this.strela = localObjParser.getParsedObject(); 
     this.strela.addLight(localDirectionalLight); 
     if (this.tekstura == null) 
     { 
     BitmapFactory.Options localOptions2 = new BitmapFactory.Options(); 
     localOptions2.inPurgeable = true; 

     this.strela.setColor(Color.WHITE); 
     } 
     this.strela.setScale(2.0F); 
     addChild(this.strela); 
     this.mCamera.setPosition(0.0F, 0.0F, -50.0F); 
     this.mCamera.setFarPlane(1000.0F); 
     Number3D localNumber3D = new Number3D(0.0F, 1.0F, 0.0F); 
     localNumber3D.normalize(); 
     this.mAnim = new RotateAnimation3D(localNumber3D, 360.0F); 
     this.mAnim.setDuration(10000L); 
     this.mAnim.setRepeatCount(-1); 
     this.mAnim.setTransformable3D(this.strela); 

     return; 
    } 
    catch (Exception localException) 
    { 
     while (true) 
     localException.printStackTrace(); 
    } 


} 

Это проблема с SAMSUNG NEXUS android v4.1.

, пожалуйста, помогите, как я могу это сделать?

+0

ли вам решить эту проблему? –

ответ

2

Это проверено и работает на Galaxy S3. Поэтому он должен работать и на вас. Я использую его на своих обоях. Попробуйте это:

SimpleMaterial localSimpleMaterial = new SimpleMaterial(); 
    Bitmap localBitmap = BitmapFactory.decodeResource(this.mContext.getResources(), R.drawable.image); 
    localSimpleMaterial.addTexture(this.mTextureManager.addTexture(localBitmap)); 
    Plane localPlane = new Plane(10.0F, 10.0F, 1, 1); 
    localPlane.setRotZ(-90.0F); 
    localPlane.setScale(3.7F); 
    localPlane.setPosition(0.0F, 0.0F, 10.0F); 
    localPlane.setMaterial(localSimpleMaterial); 
    addChild(localPlane); 

Просто убедитесь, что ваше изображение двойки, то есть, 256x256, 512x512 и т.д. Дайте мне знать, как это работает для вас.

Edit: Кроме того, убедитесь, что вы импортировать rajawali.primitives не rajawali.math

+1

Я проверю его. если это сработает для меня, то я буду отмечать ответы как правильные. –

0

Решена ли проблема? Что такое те устройства, на которых самолет не отображается? Это те Samsung? Также, пожалуйста, скажите, что это отображается серым цветом или вообще не отображается?

Я спрашиваю, потому что я столкнулся с той же проблемой, когда решение было настроить mip-mapping. Потребовалось время, когда я был новичком тогда, но там было очень простое решение:

Textures are not displayed on the sphere for Samsung Galaxy SL