当前位置: 编程技术>移动开发
本页文章导读:
▪状态栏 标题栏 暗藏 状态栏 标题栏 隐藏
状态栏 标题栏 隐藏
隐藏之 可以使可视面积最大化 且二者所代表的区域不同
1. 默认界面 即:二者都显示 供大家比较比较
2. 隐藏 状态栏 即:最上方的.........
▪ LunarLander and Snake 游戏更新线程小结 LunarLander and Snake 游戏更新线程总结
snake:是通过send和receive MSG方法来实现视图的跟新。invalidate()sudokuv:是也是通过invalidate跟新视图。由于没有自更新。所以视图变化发生在按键事件jetboy:.........
▪ layout_gravity跟gravity的区别 layout_gravity和gravity的区别
自己记录一下:原文是layout_gravity : Standard gravity constant that a child can supply to its parent. Defines how to place an object, both its x and y axis, within a larger containing object gravity定义.........
[1]状态栏 标题栏 暗藏
来源: 互联网 发布时间: 2014-02-18
状态栏 标题栏 隐藏
这是个好方法,省却了在代码中冗长的API调用,但我发现不用自定义主题,Android自己的有:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
状态栏 标题栏 隐藏
隐藏之 可以使可视面积最大化 且二者所代表的区域不同
1. 默认界面 即:二者都显示 供大家比较比较
2. 隐藏 状态栏 即:最上方的信号强度 3G网络 等属性
* 如何隐藏
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
* 运行截图:
3. 隐藏 标题栏 即:ImageSizeUpdate 那行
* 如何隐藏
//注意:2行代码的先后顺序 不能颠倒 requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.main);
* 运行截图:
4. 而且 可以同时使用二者以使可视面积最大化!
结束之!
1 楼
风小却
2010-03-22
一个App的风格应该要统一,如果某一个 Activity 要 NoTitle and FullScreen ,其它的应该也要,写在代码里不如写在XMl 配置里。
android:theme="@style/Theme.NotitleFullscreen”
android:theme="@style/Theme.NotitleFullscreen”
2 楼
zero1
2010-04-13
学习了……
3 楼
Vimesly
2010-09-18
高手啊!请问可以隐藏浏览器里面的地址栏吗?
4 楼
cnetwei
2010-10-09
风小却 写道
一个App的风格应该要统一,如果某一个 Activity 要 NoTitle and FullScreen ,其它的应该也要,写在代码里不如写在XMl 配置里。
android:theme="@style/Theme.NotitleFullscreen”
android:theme="@style/Theme.NotitleFullscreen”
这是个好方法,省却了在代码中冗长的API调用,但我发现不用自定义主题,Android自己的有:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
5 楼
sky_guang
2010-10-10
还有这个自带的theme啊,以前都自己调用api实现的,学习了
6 楼
philshang
2010-10-12
可是如果再加上Translucent就出问题了,状态栏仍然存在
具体可以参考一下我的这个问题
http://www.iteye.com/problems/51504
反复试过,都不行的
具体可以参考一下我的这个问题
http://www.iteye.com/problems/51504
反复试过,都不行的
[2] LunarLander and Snake 游戏更新线程小结
来源: 互联网 发布时间: 2014-02-18
LunarLander and Snake 游戏更新线程总结
snake:是通过send和receive MSG方法来实现视图的跟新。invalidate()
sudokuv:是也是通过invalidate跟新视图。由于没有自更新。所以视图变化发生在按键事件
jetboy:类似lunarlander
LunarLander:是通过线程在RUN方法中while(TRUE)中一直执行dodraw方法。其中它需要取得屏幕的canvas
1.extends view。这个方法所有的绘制都在onDraw()函数里进行,通过调用invalidate()通知系统调用onDraw()重绘屏幕,但是如果是在非UI线程中请求重绘就不一样了,具体怎么做大家自己去看看相关的东西。我没有看过,因为一般游戏开发我们会选择下一种方法。
2.extends SurfaceView,这是游戏开发最常用的方式,应该说如果你的游戏需要不停的更新图像,比如有帧动画的播放等等,那么就采用这种方式吧。
surfaceview的方式下你需要 implements SurfaceHolder.Callback
class SurfaceViewCore extends SurfaceView implements SurfaceHolder.Callback
LunarLander
Snake
snake:是通过send和receive MSG方法来实现视图的跟新。invalidate()
sudokuv:是也是通过invalidate跟新视图。由于没有自更新。所以视图变化发生在按键事件
jetboy:类似lunarlander
LunarLander:是通过线程在RUN方法中while(TRUE)中一直执行dodraw方法。其中它需要取得屏幕的canvas
1.extends view。这个方法所有的绘制都在onDraw()函数里进行,通过调用invalidate()通知系统调用onDraw()重绘屏幕,但是如果是在非UI线程中请求重绘就不一样了,具体怎么做大家自己去看看相关的东西。我没有看过,因为一般游戏开发我们会选择下一种方法。
2.extends SurfaceView,这是游戏开发最常用的方式,应该说如果你的游戏需要不停的更新图像,比如有帧动画的播放等等,那么就采用这种方式吧。
surfaceview的方式下你需要 implements SurfaceHolder.Callback
class SurfaceViewCore extends SurfaceView implements SurfaceHolder.Callback
LunarLander
class LunarView extends SurfaceView implements SurfaceHolder.Callback { public LunarView(Context context, AttributeSet attrs) { super(context, attrs); // register our interest in hearing about changes to our surface SurfaceHolder holder = getHolder(); holder.addCallback(this); // create thread only; it's started in surfaceCreated() thread = new LunarThread(holder, context, new Handler() { @Override public void handleMessage(Message m) { mStatusText.setVisibility(m.getData().getInt("viz")); mStatusText.setText(m.getData().getString("text")); } }); setFocusable(true); // make sure we get key events } @Override public void onWindowFocusChanged(boolean hasWindowFocus) { if (!hasWindowFocus) thread.pause(); } public void surfaceCreated(SurfaceHolder holder) { // start the thread here so that we don't busy-wait in run() // waiting for the surface to be created thread.setRunning(true); thread.start(); } public void surfaceDestroyed(SurfaceHolder holder) { // we have to tell thread to shut down & wait for it to finish, or else // it might touch the Surface after we return and explode boolean retry = true; thread.setRunning(false); while (retry) { try { thread.join(); retry = false; } catch (InterruptedException e) { } } } class LunarThread extends Thread { public LunarThread(SurfaceHolder surfaceHolder, Context context, Handler handler) { // get handles to some important objects mSurfaceHolder = surfaceHolder; mHandler = handler; mContext = context; } public void run() { while (mRun) { Canvas c = null; try { c = mSurfaceHolder.lockCanvas(null); synchronized (mSurfaceHolder) { if (mMode == STATE_RUNNING) updatePhysics(); doDraw(c); } } finally { // do this in a finally so that if an exception is thrown // during the above, we don't leave the Surface in an // inconsistent state if (c != null) { mSurfaceHolder.unlockCanvasAndPost(c); } } } } public void setState(int mode, CharSequence message) { synchronized (mSurfaceHolder) { mMode = mode; if (mMode == STATE_RUNNING) { Message msg = mHandler.obtainMessage(); Bundle b = new Bundle(); b.putString("text", ""); b.putInt("viz", View.INVISIBLE); msg.setData(b); mHandler.sendMessage(msg); } else { if (message != null) { str = message + "\n" + str; } if (mMode == STATE_LOSE) mWinsInARow = 0; Message msg = mHandler.obtainMessage(); Bundle b = new Bundle(); b.putString("text", str.toString()); b.putInt("viz", View.VISIBLE); msg.setData(b); mHandler.sendMessage(msg); } } } private void doDraw(Canvas canvas) { } } }
Snake
public class SnakeView extends TileView { private static final Random RNG = new Random(); private RefreshHandler mRedrawHandler = new RefreshHandler(); class RefreshHandler extends Handler { @Override public void handleMessage(Message msg) { SnakeView.this.update(); SnakeView.this.invalidate(); } public void sleep(long delayMillis) { this.removeMessages(0); sendMessageDelayed(obtainMessage(0), delayMillis); } }; public SnakeView(Context context, AttributeSet attrs) { super(context, attrs); initSnakeView(); } public SnakeView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); initSnakeView(); } private void initSnakeView() { setFocusable(true); } private void initNewGame() { } public void update() { mRedrawHandler.sleep(mMoveDelay); } } }
[3] layout_gravity跟gravity的区别
来源: 互联网 发布时间: 2014-02-18
layout_gravity和gravity的区别
自己记录一下:
原文是
layout_gravity : Standard gravity constant that a child can supply to its parent. Defines how to place an object, both its x and y axis, within a larger containing object
gravity定义了这个元素内所有子元素对于这个元素的布局
比如一个TextView内部文字的align
layout_gravity定义了这个元素相对于父元素(比如Layout)的布局
比如一个TextView在整个Layout中的位置
所以说, 在Layout里面定义layout_gravity的属性是没用的.
自己记录一下:
原文是
layout_gravity : Standard gravity constant that a child can supply to its parent. Defines how to place an object, both its x and y axis, within a larger containing object
gravity定义了这个元素内所有子元素对于这个元素的布局
比如一个TextView内部文字的align
layout_gravity定义了这个元素相对于父元素(比如Layout)的布局
比如一个TextView在整个Layout中的位置
所以说, 在Layout里面定义layout_gravity的属性是没用的.
最新技术文章: