2011-04-07 3 views
0

Quand il s'agit de faire Android fond d'écran en direct, quelles sont les choses qui sont exactement nécessaires. Jusqu'à présent, j'ai pu voir comme WallpaperService.Engine, SurfaceView, quelques changements majeurs dans Android.manifest et xml/string.xml en dehors de ce un png drawble (je pense que cela peut être facultatif si j'utilise de la peinture).Android Guidage Live Wallpaper

Et de quoi d'autre ai-je besoin pour développer une logique totalement différente pour que l'animation se produise? est-ce toujours avec des calculs mathématiques? Je suis très désireux de faire différents types de fond d'écran en direct. mais je ne suis pas sur la bonne voie je pense.

S'il vous plaît me suggérer un moyen de sortir à la bonne direction me résumer tout ce dont j'ai besoin pour que je puisse faire toute sorte de fond d'écran en direct. Est-ce que quelqu'un peut résumer tout ce qui est nécessaire pour le papier peint en direct?

Merci à l'avance.

Répondre

0

Oui, vous devez utiliser une approche différente pour le fond d'écran animé que l'animation "normale" dans Android. L'approche standard consiste à faire un runnable d'auto-ré-ordonnancement qui dessine sur canvas.

En réponse à l'une de vos questions spécifiques: non, vous n'avez pas besoin de vous limiter aux calculs mathématiques; vous pouvez utiliser des bitmaps/sprites si vous le souhaitez, mais vous devrez les animer vous-même.

Votre meilleur endroit pour commencer est les ressources du SDK:
http://developer.android.com/resources/articles/live-wallpapers.html
http://developer.android.com/resources/samples/CubeLiveWallpaper/index.html

+0

merci George Je vais m'y pencher et je reviendrai vers vous. –

+0

Dois-je savoir à propos d'opengl aussi pour faire du papier peint en direct? –

+0

La plupart des fonds d'écran n'utilisent pas Open GL, mais vous voudrez peut-être l'utiliser à un moment donné. Regardez ici si vous êtes intéressé: https://github.com/markfguerra/GLWallpaperService –

1

Salut vous pouvez utiliser ce code si vous avez chemin d'image.

is = new FileInputStream(new File(imagePath)); 
bis = new BufferedInputStream(is); 
Bitmap bitmap = BitmapFactory.decodeStream(bis); 
Bitmap useThisBitmap = Bitmap.createScaledBitmap(
bitmap, parent.getWidth(), parent.getHeight(), true); 
bitmap.recycle(); 
if(imagePath!=null){ 
System.out.println("Hi I am try to open Bit map"); 
wallpaperManager = WallpaperManager.getInstance(this); 
wallpaperDrawable = wallpaperManager.getDrawable(); 
wallpaperManager.setBitmap(useThisBitmap); 

........................................... ...... si vous avez l'URI d'image alors utilisez ceci

wallpaperManager = WallpaperManager.getInstance(this); 
wallpaperDrawable = wallpaperManager.getDrawable(); 
mImageView.setImageURI(imagepath); 

.............. Informez-moi s'il y a un problème.

+0

indentation code 4 espaces pour le formatage - voir le bouton '{}' et [aide à la modification de Markdown] (http://stackoverflow.com/editing-help) – McDowell

+0

Désolé, je ne vous comprends pas. – Maidul

+0

@Md Maidul Islam: Je suis désolé d'avoir répondu à ce sujet si tard. Mais le code que vous avez fourni ci-dessus essentiellement ce qu'il fait, c'est qu'il prend n'importe quelle image soit en streaming en tant que première partie ou par le biais de tout drawable statique. Ensuite, définissez-le comme le fond d'écran genre de choses à droite? Je ne l'ai pas essayé mais si ça marche, c'est utile, mais ce que je cherchais exactement, c'était le sceen changeant dynamiquement, comme l'animation du papier peint sur notre bureau. –