在安卓动态壁纸下载中怎样上传第二份作品?

2.2安卓动态壁纸怎么用_百度知道
2.2安卓动态壁纸怎么用
提问者采纳
下载动态壁纸软件 安装
其他类似问题
9人觉得有用
为您推荐:
您可能关注的推广
安卓动态壁纸的相关知识
其他1条回答
桌面添加!
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁android 动态背景的实现以及SurfaceView中添加EditText控件
& & & 首先还是一贯作风,我们先看案例:
& & & & & & &
& & & &静态图看不出来效果,如果用过此软件(扎客)的同学们都知道,她的背景会动.怎么样,是不是觉得很时尚,起码比静态的要好(个人观点).其实实现起来并不复杂,这个如果让做游戏程序员做简直太小儿科了,这里我说明一点,其实我们做应用的也应该多少了解下游戏编程思维,起码对我们做应用有很好的帮助.
& & & 下面我简单介绍下实现方式.
& & & &实现原理:自定义一个SurfaceView控件.对之不停的onDraw,使得其背景动起来.
& & & &对于SurfaceView如果不了解的同学们麻烦你先上网查找下,网上相关介绍很多.
& & & &这里我简单介绍下其功能:首先这个控件是View的子类.好处就是可以在线程中(非UI线程)对UI进行更新.
MySurfaceView.java
package com.jj. &
import android.content.C &
import android.graphics.B &
import android.graphics.C &
import android.graphics.C &
import android.graphics.P &
import android.graphics.PorterD &
import android.util.AttributeS &
import android.view.SurfaceH &
import android.view.SurfaceV &
import android.view.SurfaceHolder.C &
public class MySurfaceView extends SurfaceView implements Callback, Runnable { &
& & private Context mC &
& & private SurfaceHolder surfaceH &
& & private boolean flag =// 线程标识 &
& & private Bitmap bitmap_// 背景图 &
& & private float mSurfaceWindth, mSurfaceH// 屏幕宽高 &
& & private int mBitposX;// 图片的位置 &
& & private Canvas mC &
& & private T &
& & // 背景移动状态 &
& & private enum State { &
& & & & LEFT, RINGHT &
& & // 默认为向左 &
& & private State state = State.LEFT; &
& & private final int BITMAP_STEP = 1;// 背景画布移动步伐. &
& & public MySurfaceView(Context context, AttributeSet attrs) { &
& & & & super(context, attrs); &
& & & & flag = &
& & & & this.mContext = &
& & & & setFocusable(true); &
& & & & setFocusableInTouchMode(true); &
& & & & surfaceHolder = getHolder(); &
& & & & surfaceHolder.addCallback(this); &
& & &* 进行绘制.&
& & protected void onDraw() { &
& & & & drawBG(); &
& & & & updateBG(); &
& & &* 更新背景.&
& & public void updateBG() { &
& & & & /** 图片滚动效果 **/ &
& & & & switch (state) { &
& & & & case LEFT: &
& & & & & & mBitposX -= BITMAP_STEP;// 画布左移 &
& & & & & & &
& & & & case RINGHT: &
& & & & & & mBitposX += BITMAP_STEP;// 画布右移 &
& & & & & & &
& & & & default: &
& & & & & & &
& & & & } &
& & & & if (mBitposX &= -mSurfaceWindth / 2) { &
& & & & & & state = State.RINGHT; &
& & & & } &
& & & & if (mBitposX &= 0) { &
& & & & & & state = State.LEFT; &
& & & & } &
& & &* 绘制背景&
& & public void drawBG() { &
& & & & mCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);// 清屏幕. &
& & & & mCanvas.drawBitmap(bitmap_bg, mBitposX, 0, null);// 绘制当前屏幕背景 &
& & @Override &
& & public void run() { &
& & & & while (flag) { &
& & & & & & synchronized (surfaceHolder) { &
& & & & & & & & mCanvas = surfaceHolder.lockCanvas(); &
& & & & & & & & onDraw(); &
& & & & & & & & surfaceHolder.unlockCanvasAndPost(mCanvas); &
& & & & & & & & try { &
& & & & & & & & & & Thread.sleep(100); &
& & & & & & & & } catch (InterruptedException e) { &
& & & & & & & & & & e.printStackTrace(); &
& & & & & & & & } &
& & & & & & } &
& & & & } &
& & @Override &
& & public void surfaceCreated(SurfaceHolder holder) { &
& & & & mSurfaceWindth = getWidth(); &
& & & & mSurfaceHeight = getHeight(); &
& & & & int mWindth = (int) (mSurfaceWindth * 3 / 2); &
& & & & /***&
& & & & &* 将图片缩放到屏幕的3/2倍.&
& & & & &*/ &
& & & & bitmap_bg = BitmapUtil.ReadBitmapById(mContext, R.drawable.hypers_bg, &
& & & & & & & & (int) mWindth, (int) mSurfaceHeight); &
& & & & thread = new Thread(this); &
& & & & thread.start(); &
& & @Override &
& & public void surfaceChanged(SurfaceHolder holder, int format, int width, &
& & & & & & int height) { &
& & @Override &
& & public void surfaceDestroyed(SurfaceHolder holder) { &
& & & & flag = &
上诉代码相当简单,我也不过多介绍.相信大家都看得懂.
下面是我们只需要在Main.xml中引用即可.
&?xml version=&1.0& encoding=&utf-8&?& &
&com.jj.dynamic.MySurfaceView xmlns:android=&/apk/res/android& &
& & android:layout_width=&fill_parent& &
& & android:layout_height=&fill_parent& & &
&/com.jj.dynamic.MySurfaceView& &
这个的效果图我就不展示了.就是一个时时变动的背景图片,下面我展示下我最近在开发的一个内部小型项目,针对开年会娱乐场所用的.(里面东西都是会动的.)看是简单我加了好多动画特效,做这个页面花了我一个星期呢.
& & &&& & & & & && & &
怎么样,看起来还不错吧.其实我只是想说明一点.我们应用中完全可以把游戏融入进去,这样我们可以得到另一番景象,不过话说回来,这样也会带来相应的负面影响,因为都是画上去的,所以工作量也会翻倍.总之根据自己需要来开发就好了.
下面我上传下APK,大家可以安装下看看,说不定你可以从中找到灵感.
HypersParty.apk
下面我们再看一个页面:
我想说明的是这个密码后面的EditText的问题,要加上去很简单,我们直接可以通过布局搞定,下面我们看布局文件
这里我没有上布局文件代码,是因为我觉得看这个视图更好理解一点,不是么,有很多一上来就把布局文件啪啦啪啦贴出来,还得读取半天.
我说下诡异问题.看下面张图片:
这张图片是我点击键盘后让键盘小时候的结果(注:此时软键盘可以遮挡输入框).其实如果你再次点击edittext,其实它还在原位,只是surfaceView在绘制的时候影响到了,原因不明.(下面我说个更诡异的问题,真是一个接一个,弄的我有想摔手机的心都有了.我的测试机是华为S8600,android2.3的,然后我用oppo手机android4.0测试的时候用截图工具竟然截不出来上面这张bug图片,手机助手显示是OK,但是手机上显示是BUG,NND,当时郁闷的要死,不管了这也不是重点.)
解决方法很简单:我们只需要在我们的activity中执行这段话就ok了.(同样适用于自定义的dialog.)
getWindow().setSoftInputMode( &
& & & & WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE &
& & & & & & & & | WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN); &
网上有的说可以在配置文件中配置,可是我配置了竟然无动于衷.大家可以去研究研究,总之代码这种方案可行.
问题又出来了,看着怎么这么别扭呢,为什么密码跑了那么高呢?
这个问题没有解决,希望同学们有解决方案的朋友们麻烦告知下,(尝试多次不行,个人感觉是以edittext为对象,将之弹起,中间的距离和edittext本身在布局中的位置有关,如果在底部的话,那么正好在键盘的上面)。
有文章说 & getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN); 这句话可以解决,可惜试了试不尽人意.
总之看着还说的过去,临时就这样了,昨天在群里问了问,有朋友们提出,弄一个透明的dialog,activity,想想虽然没有这么搞的,但是确实可行,只要你处理得好,根本看不出来他们不是一个布局.
最后简单说明一点:其实在surfaceView中一般不需要加edittext控件的,比如说游戏,即使要的话,也会弹出一个性感的dialog.在其中加载控件(尤其是edittext)几乎就不会有这样的需求,即使有了,我们换个思维实现就OK了.
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。在安卓动态墙纸里怎样保存图片?_百度知道
在安卓动态墙纸里怎样保存图片?
点击图片成全屏模式,长按图片会弹出一个方框,你点击保存就行了。
其他类似问题
为您推荐:
安卓的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 安卓动态桌面壁纸 的文章

 

随机推荐