当前位置:  编程技术>移动开发
本页文章导读:
    ▪TableRow数据更新时加下高亮背景        TableRow数据更新时加上高亮背景     一般Table的数据(行)更新时,要配合一定的动画效果,才能引起用户注意。    在Android里,颜色值用8位的16进制来表示,其中前两2位用来表示 alpha channel,.........
    ▪ IPone低级开发的小技巧        IPone初级开发的小技巧 1.点击F9回到桌面,并且显示所有打开的程序。 2.点击F11回桌面。 3.NSUInteger表示无符号整形数。 4.选中多行代码,按开始+"/"注释多行代码。 5.在Xcode中将外部文件拖入到.........
    ▪ 设立桌面快捷方式       设置桌面快捷方式  如何在程序中设置桌面快捷方式(home screen shortcut): /** *创建桌面图标(Home Screen Shortcut) * * @param context the context * @param clz 快捷方式启动的Activity */ public static void mak.........

[1]TableRow数据更新时加下高亮背景
    来源: 互联网  发布时间: 2014-02-18
TableRow数据更新时加上高亮背景
    一般Table的数据(行)更新时,要配合一定的动画效果,才能引起用户注意。
    在Android里,颜色值用8位的16进制来表示,其中前两2位用来表示 alpha channel, 后6位用来表示rgb. 在程序里面,只要在指定时间内,将alpha channel从 0调整到 0xff,就实现了 highlight TableRow.

  • 下面是用线程来实现:


class ColorRefreshTask extends TimerTask {
			final static int  DELAY_ONCE =200;
			final static int TOTAL_RUNTIME = 3000;
			final static int POWER_16_16 = 16 * 16* 16 * 16 * 16 * 16;
			final static int INCREASE_ONCE =  0xff / (TOTAL_RUNTIME / DELAY_ONCE);
			int color;
			int id;
			int startTime;
			int alphaChannel;
			
			/**
			 * 
			 * @param color (TableRow's current background color)
			 * @param id TableRow's id(user id)
			 */
			public ColorRefreshTask(int color, int id) {
				super();
				Log.d("color", "ready to set color!");
				this.color = color;
				this.id = id;
				this.startTime = 0;
				this.alphaChannel = 0;
			}
			
			public void run(){
				
				int colorComm = color -0xff000000;  //RGB color value;
				int currColor = color;
				
				if(startTime < TOTAL_RUNTIME) {
						startTime +=  DELAY_ONCE;
						alphaChannel +=  INCREASE_ONCE;
						currColor = POWER_16_16 *  alphaChannel  + colorComm;
						Log.d("color", Integer.toHexString(currColor));
						sendMsg(currColor);
						messageHandler.postDelayed(this,DELAY_ONCE);
						
				}
				else {
					sendMsg(currColor);
				}
				
			
			}
			
			public void startTimer(){
				  messageHandler.postDelayed(this,DELAY_ONCE);
			}
			
			
			private void sendMsg(int currColor){
				Message message = messageHandler.obtainMessage(); 
				message.what = MESSAGE_HANDLE_ID_UPDATEROW_BACKGROUND;
				Bundle bundle = new Bundle();
				bundle.putInt(MESSAGE_KEY_ID, id);
				bundle.putInt(MESSAGE_KEY_COLOR, currColor);
				message.setData(bundle);
				messageHandler.sendMessage(message);
			}
			
			public void stopTimer(){
				  this.cancel();
			}
			
			
	  }


  • 消息处理部分:

 private static final int MESSAGE_HANDLE_ID = 800;
	  private static final int MESSAGE_HANDLE_ID_UPDATEROW_DATA = MESSAGE_HANDLE_ID + 1;
	  private static final int MESSAGE_HANDLE_ID_UPDATEROW_BACKGROUND = MESSAGE_HANDLE_ID +2;
	  private  Handler messageHandler = new Handler() {

		@Override
		public void handleMessage(Message msg) {
			
		switch(msg.what) {
			case  MESSAGE_HANDLE_ID_UPDATEROW_DATA:{
				int id = msg.getData().getInt(MESSAGE_KEY_ID);
				String fields[] = new String[5];
				fields[0] = msg.getData().getString("fields1");
				fields[1] = msg.getData().getString("fields2");
				fields[2] = msg.getData().getString("fields3");
				fields[3] = msg.getData().getString("fields4");
				fields[4] = msg.getData().getString("fields5");
				updateRowInTable(id, fields);
				break;
			}
						
			case  MESSAGE_HANDLE_ID_UPDATEROW_BACKGROUND:
			{
				int id = msg.getData().getInt(MESSAGE_KEY_ID);
				int color = msg.getData().getInt(MESSAGE_KEY_COLOR);
				TableRow tableRow= (TableRow)findViewById( id);
				if(tableRow != null) {
					int count = tableRow.getChildCount();
					for(int index = 0; index < count; index++) {
						TextView child = (TextView)(tableRow.getChildAt(index));
						if(child != null) {
							child.setBackgroundColor(color);
							
						}
					}
				}
				break;
			}
			default:
					
		}
			
		}
		  
	  };


  • 数据更新(其他线程会调用)部分:

private final void updateRowInTable(int code,String[] otherFields) {
	  TableRow tableRow= (TableRow)findViewById(code);
	  if(tableRow == null)  {
		  Log.d("tablerow", "can't find row in the table!");
		  return;
	  }
	  int bgColorEnd = (otherFields[2].indexOf("-") >= 0)  ?  0xff2e8b57 : 0xffb22222;
      for(int index = 0; index < otherFields.length; index++) {
    	   int identity = code * 13  +(index+1);
    	  
    	  TextView textView=  (findViewById(identity)!= null)  ?  (TextView) findViewById(identity) :  new TextView(this);  
    	 
    	  if(otherFields[index].indexOf('-') >=0) {
    		  textView.setTextColor(Color.GREEN);
    	  }
    	  else if( index == 2) {
    		  textView.setTextColor(Color.RED);
    	  }
    	  else  {
    		  textView.setTextColor(Color.WHITE);
    	  }
    	  textView.setText(otherFields[index]);
    	  Log.d("tablerow", "updated  id:" + (code)  + ", value="  + otherFields[index] );
    	  if(findViewById(identity) == null){
    		  textView.setId(identity);
    		  tableRow.addView(textView);  
    	  	  Log.d("tablerow", "add new view!");
    	  }
    	  else {
    		  Log.d("tablerow", "upate view!");
    	  }
    	  textView.postInvalidate();
    	  //textView.invalidate();
      }
      tableRow.postInvalidate();
      //tableRow.invalidate();
      ColorRefreshTask refresh = new ColorRefreshTask(bgColorEnd,code);
      messageHandler.postDelayed(refresh, 50);  
      
}



    
[2] IPone低级开发的小技巧
    来源: 互联网  发布时间: 2014-02-18
IPone初级开发的小技巧

1.点击F9回到桌面,并且显示所有打开的程序。

2.点击F11回桌面。

3.NSUInteger表示无符号整形数。

4.选中多行代码,按开始+"/"注释多行代码。

5.在Xcode中将外部文件拖入到工程中时,并没有将外部文件复制到本工程,在将外

   部文件删除后,此工程就找不到拖入的外部文件了。要解决此问题,可现将外部文件

   复  制到本工程,然后再拖入到Xcode的工程中。

6.再Xcode中点击shift+开始(windows 键盘) +F进行查找,在查找时在find后的下拉

   框 中要选择 in project,在replace后的下拉框中选择Textual。


    
[3] 设立桌面快捷方式
    来源: 互联网  发布时间: 2014-02-18
设置桌面快捷方式

 如何在程序中设置桌面快捷方式(home screen shortcut):

/**
*创建桌面图标(Home Screen Shortcut)  
*   
* @param context the context    
* @param clz 快捷方式启动的Activity 
*/   
public static void makeShortcut(Context context,Class<?> clz) {

Intent shortcutIntent = new Intent(context,clz);
//      shortcutIntent.setClassName(packageName, name);     
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);     
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);        
Intent intent = new Intent();       
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);      
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, context.getResources().getString(R.string.app_name));       
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(context, R.drawable.icon) );       
intent.setAction(Intent.ACTION_CREATE_SHORTCUT);     
context.sendBroadcast(intent); 
}

     
设置快捷方式的目标Activity 该Activity一般具有如下的设置:
    

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
1 楼 1927105 2010-08-16  
不行啊,我专门写一个工具类也不行啊,,,
2 楼 hyfeng0523 2010-09-08  
楼主的方法可行,如果我想要某一个Activity放在桌面快捷方式呢?这个Activity没有MAIN属性与LAUNCHER属性/?如何实现?

    
最新技术文章:
▪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