当前位置:  编程技术>移动开发
本页文章导读:
    ▪状态栏 标题栏 暗藏        状态栏 标题栏 隐藏 状态栏 标题栏 隐藏     隐藏之 可以使可视面积最大化 且二者所代表的区域不同       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
状态栏 标题栏 隐藏

状态栏 标题栏 隐藏

 

 

隐藏之 可以使可视面积最大化 且二者所代表的区域不同

 

 

 

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”
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”


这是个好方法,省却了在代码中冗长的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
反复试过,都不行的

    
[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

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的属性是没用的.

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3