当前位置:  编程技术>移动开发
本页文章导读:
    ▪dialog设立透明度 activity设置透明度        dialog设置透明度 activity设置透明度   作了两个dialog,想设置第二个透明些,即从第二个dialog上能看到其下面的第一个dialog的内容,找到一个设置,试了一下不错,方法如下:   WindowManager.Layo.........
    ▪ Navigation跟TabBar合用        Navigation和TabBar合用 AppDelegate中的代码 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //self.nav = [[[UINavigationController alloc ] initWithRootViewController:viewCo.........
    ▪ Box2d碰撞罗选       Box2d碰撞筛选   应用博客:http://blog.sina.com.cn/s/blog_6a2061a20100n0or.html   碰撞筛选就是一个防止某些形状发生碰撞的系统。按照具体需求设置哪些物体跟那些物体发生碰撞,跟哪些物体不发生碰.........

[1]dialog设立透明度 activity设置透明度
    来源: 互联网  发布时间: 2014-02-18
dialog设置透明度 activity设置透明度

 

作了两个dialog,想设置第二个透明些,即从第二个dialog上能看到其下面的第一个dialog的内容,找到一个设置,试了一下不错,方法如下:

 

WindowManager.LayoutParams lp=dialog.getWindow().getAttributes();
lp.alpha=1.0f;
dialog.getWindow().setAttributes(lp);
alpha在0.0f到1.0f之间。1.0完全不透明,0.0f完全透明

 

 

---------------------------------------

所谓的activity中设置透明都值的是activity的主题变成了dialog,那么跳转到这个activity的时候,出现的是对话框的形式了。这样的话,同样的也使用于上面的几个方法,至少对象名换成了this,

 

见代码

AndroidManifest.xml 配置activity的主题是dialog样式,这个大家都会

 

activity的代码

 

import com.hzilearning.dict.activity.R;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.TextView;

/**
 * 按M图片跳出来的一个选择框
 * 
 * @author endual
 * 
 */
public class JumpMenuActivity extends Activity {

	private TextView tv_jumpmenu_newword;
	private TextView tv_jumpmenu_important;
	private TextView tv_jumpmenu_mastered;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		this.setContentView(R.layout.jumpmenu);

		this.setTitle(null) ;
		WindowManager.LayoutParams lp = getWindow().getAttributes();
		lp.alpha=0.8f;
		getWindow().setAttributes(lp);
		
		tv_jumpmenu_newword = (TextView) this
				.findViewById(R.id.tv_jumpmenu_newword);
		tv_jumpmenu_important = (TextView) this
				.findViewById(R.id.tv_jumpmenu_important);
		tv_jumpmenu_mastered = (TextView) this
				.findViewById(R.id.tv_jumpmenu_mastered);
		this.tv_jumpmenu_newword.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub

				Intent intent = new Intent();
				intent.setClass(JumpMenuActivity.this,
						LearnWordListTabActivity.class);
				startActivity(intent);
			}

		});

。。。。。。
。。。。。。 
 

 

 

  • this.setTitle(null) ;   //设置的标题
  •         WindowManager.LayoutParams lp = getWindow().getAttributes();  
  •         lp.alpha=0.8f;  
  •         getWindow().setAttributes(lp);  
  •        
  •  

     

     

     


        
    [2] Navigation跟TabBar合用
        来源: 互联网  发布时间: 2014-02-18
    Navigation和TabBar合用

    AppDelegate中的代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
        //self.nav = [[[UINavigationController alloc ] initWithRootViewController:viewController ] autorelease ];
    	//设置标签栏
    	UIViewController *viewCon1, *viewCon2, *viewCon3, *viewCon4, *viewCon5;
    	viewCon1 = [[NRPTViewController alloc] init];
    	viewCon2 = [[NRPTViewController alloc] init];
    	viewCon3 = [[NRPTViewController alloc] init];
    	viewCon4 = [[NRPTViewController alloc] init];
    	viewCon5 = [[NRPTViewController alloc] init];
    	self.tab = [[[UITabBarController alloc] init] autorelease];
    	//设置5个nav
    	UINavigationController *nav1, *nav2, *nav3, *nav4, *nav5;
    	nav1 = [[[UINavigationController alloc] initWithRootViewController:viewCon1] autorelease];
    	nav2 = [[[UINavigationController alloc] initWithRootViewController:viewCon2] autorelease];
    	nav3 = [[[UINavigationController alloc] initWithRootViewController:viewCon3] autorelease];
    	nav4 = [[[UINavigationController alloc] initWithRootViewController:viewCon4] autorelease];
    	nav5 = [[[UINavigationController alloc] initWithRootViewController:viewCon5] autorelease];
    	
    	self.tab.viewControllers = [NSArray arrayWithObjects:nav1,nav2,nav3,nav4,nav5,nil];
    	//NSArray *arr = [NSArray arrayWithObjects:self.nav,nil];
    	
    	[window addSubview:self.tab.view];
        [window makeKeyAndVisible];
    
        return YES;
    }
    

     在每个具体的视图中进行UITabBarItem和navigation的标题设置

    - (id)init{
    	if ([super init] != nil) {
    		self.title = @"首页";
    		UIImage *img = [UIImage imageNamed:@"bag_2.png"];
    		UITabBarItem *tabItem = [[UITabBarItem alloc] initWithTitle:@"主页"
    															 image:img
    															   tag:0];
    		self.tabBarItem = tabItem;
    		[tabItem release];
    	}
    	return self;
    
    }
    
     

        
    [3] Box2d碰撞罗选
        来源: 互联网  发布时间: 2014-02-18
    Box2d碰撞筛选

     

    应用博客:http://blog.sina.com.cn/s/blog_6a2061a20100n0or.html

     

    碰撞筛选就是一个防止某些形状发生碰撞的系统。按照具体需求设置哪些物体跟那些物体发生碰撞,跟哪些物体不发生碰撞。
    Box2D通过种群跟组索引支持碰撞筛选。
    组索引比较简单,设置其shapeDef的groupIndex值即可,例如boxDef.filter.groupIndex = 1。
    通过groupIndex值的正负来确定同一个组的所有形状总是发生碰撞(正)或永远不发生碰撞(负),需要特别注意的是两个不同的付索引是依然会发生碰撞的,例如一个圆的GroupIndex值为-1,一个矩形GroupIndex值为-2。因为不同组索引之间是按照种群跟掩码来筛选的,也就是讲,组索引是有着更高的优选权的。

    Box2D支持16个种群,因此我们可以指定任何一个形状属于哪个种群,同时也可以指定这一形状和哪些其它的种群发生碰撞。这一过程就是通过设置其shapeDef的categoryBits值与maskBits值完成的。
    categoryBits用于定义自己所属的碰撞种类,maskBits则是指定碰撞种类。
    举个例子讲,如果body1的boxDef.filter.categoryBits = 0x0002,body2的boxDef.filter.categoryBits = 0x0004,则如果另外一个body想与他们两个都发生碰撞,则其boxDef.filter.maskBits = 0x0006;简单讲,一个body要与其它种群的body发生碰撞,则其maskBits值应该为其它种群的body的categoryBits之和。

    但是同时也不是那么简单,如果三个body的categoryBits分别为0x0001,0x0002,0x0003,那另外一个body的 maskBits值如果是0x0003的话,那它是跟categoryBits值为0x0001和0x0002的两个body碰撞呢,还是单独只跟 categoryBits值0x0003的body发生碰撞呢,亦或是跟三个body都发生碰撞呢?

    一个游戏中的种群一般有多少种呢?

    现在我们就做一个测试,具体要求:四个刚体。
    矩形:只跟自身,圆形,三角形发生碰撞。
    圆形:只跟自身,矩形,五边形发生碰撞。
    三角形:只跟自身,矩形发生碰撞。
    五边形:只跟自身,圆形碰撞。


    categoryBits值:矩形[0x0001],圆形[0x0002],三角形[0x0003],五边形[0x0004]。
    maskBits值:矩形[1+2+3=6=0x0006]
                圆形[1+2+4=7=0x0007]
                三角形[1+3=4=0x0004]
                五边形[2+4=6=0x0006]
    这个碰撞具体会怎样呢?矩形跟五边形竟然一样!6跟7少说也有两种组合方法,还是直接看Demo好了。
     

    结果:
    矩形:只跟圆形发生碰撞。6跟2有什么关系?
    圆形:只跟自身,矩形,五边形发生碰撞。符合要求。赞一个!
    三角形:只跟五边形发生碰撞。4跟4,是不是单一比组合优先?
    五边形:只跟自身,圆形,三角形发生碰撞。6 = 2+3+4??我勒个去!

     

    还是先看看正确的把!

     

    一切一切的错误就是categoryBits值有些取值是违规的,categoryBits值是必须为2的倍数的。

    即有如下的16个种群:

    0x0000 = 0

    0x0001 = 1

    0x0002 = 2

    0x0004 = 4

    0x0008 = 8

     

    0x0010 = 16

    0x0020 = 32

    0x0040 = 64

    0x0080 = 128

     

    0x0100 = 256

    0x0200 = 512

    0x0400 = 1024

    0x0800 = 2048

     

    0x1000 = 4096

    0x2000 = 8192

    0x4000 = 16384

    0x8000 = 32768

    这样子,6就只能跟2+4配对,8就只能跟8自己配对。


        
    最新技术文章:
    ▪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播放网络视频的实现方法...
    NOSQL iis7站长之家
     


    站内导航:


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

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

    浙ICP备11055608号-3