当前位置:  编程技术>移动开发
本页文章导读:
    ▪兑现类似QQ通讯录中新建短信时选择联系人的效果        实现类似QQ通讯录中新建短信时选择联系人的效果 效果如下: Activity的上面是GridView,下面是ListView   项目结构:     实现起来很简单。注释代码中都有,直接上代码:   ChoosePanelAdapter.java: im.........
    ▪ UITextView封闭键盘        UITextView关闭键盘 1.如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate。 - (void)textViewDidBeginEditing:(UITextView *)textView { UIBarButtonIte.........
    ▪ Mac系统上查看鼠标所在点的RGB值-数码测色计       Mac系统下查看鼠标所在点的RGB值--数码测色计 苹果电脑的Mac OS X系统自带鼠标所在点颜色RGB值查看工具:数码测色计。打开Finder(Dock栏第一个笑脸图标),选择应用程序--实用工 具--.........

[1]兑现类似QQ通讯录中新建短信时选择联系人的效果
    来源: 互联网  发布时间: 2014-02-18
实现类似QQ通讯录中新建短信时选择联系人的效果

效果如下:

Activity的上面是GridView,下面是ListView

 

项目结构:

 

 

实现起来很简单。注释代码中都有,直接上代码:

 

ChoosePanelAdapter.java:

import java.util.List;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;

/**
 * This is the adapter of GridView. 
 * Make every Item of GridView setOnClickListener in the method of getView(),
 * when Item clicked,get the background drawable of this Item.
 * If it's normal drawable,then go through all the items of GridView and set normal drawable.
 * If it's selected drawable,delete the data of arrayList by Item id,and call notifyDataSetChanged()
 * 
 * 这个是GridView的数据适配器。
 * 在getView()中让每一个Item都设置了OnClickListener,在点击事件触发的时候,判断下当前Item的背景图片
 * 如果是normal,则遍历所有的Item,将背景设置为normal,将当前被点击的Item的背景图片设置成selected,
 * 如果是selected,就根据索引删除当前的Item的数据源,并调用notifyDataSetChanged(),刷新。
 * 
 * @author MichaelYe
 * @since 2012-8-28
 * */
public class ChoosePanelAdapter extends BaseAdapter
{
	private Context context;
	private List<String> arrayList;
	private Drawable iconDefalut;
	private Drawable iconSelected;
	public ChoosePanelAdapter(Context context, List<String> arrayList)
	{
		this.context = context;
		this.arrayList = arrayList;
		iconDefalut = context.getResources().getDrawable(R.drawable.icon_default);
		iconSelected = context.getResources().getDrawable(R.drawable.icon_selected);
	}

	@Override
	public int getCount() {
		return arrayList.size();
	}

	@Override
	public Object getItem(int position) {
		return arrayList.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(final int position, View convertView, ViewGroup parent)
	{
		Button button;
        if (convertView == null)
        {
        	button = new Button(context);
	    }
	    else
	    {
	    	button = (Button) convertView;
	    }
        button.setText(arrayList.get(position));
        button.setBackgroundDrawable(iconDefalut);
        button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				if(v.getBackground() == iconSelected)//判断当前的背景是哪个
				{
					arrayList.remove(position);
					ChoosePanelAdapter.this.notifyDataSetChanged();
				}
				else
				{
					ChoosePanelAdapter.this.setButtonDefaultState(v);
					v.setBackgroundDrawable(iconSelected);
				}
				v.invalidate();
			}
		});
	    return button;
	}
	
	/**
	 * set all the buttons state normal
	 * 
	 * 设置按钮背景图片为默认状态
	 * 
	 * */
	private void setButtonDefaultState(View v)
	{
		GridView gvParent = (GridView)v.getParent();
		int childCount = gvParent.getChildCount();
		for(int i = 0; i < childCount; i++)
		{
			gvParent.getChildAt(i).setBackgroundDrawable(iconDefalut);
		}
		gvParent.invalidate();
	}
}

 

MainActivity.java

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.GridView;
import android.widget.ListView;

/**
 * use GridView make the effect like QQ Address Book when choose a contact 
 * 
 * 类似QQ通讯录中的短信模块中选择联系人的效果,使用的是GridView
 * 
 * @author MichaelYe
 * @since 2012-8-28
 * */
public class MainActivity extends Activity 
{

	private GridView gvPanel;
	private ListView listView;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        gvPanel = (GridView)findViewById(R.id.gv_panel);
        listView = (ListView)findViewById(R.id.listview);
        
        final List<String> data = this.getData();
        final List<String> panelArrayList = new ArrayList<String>();
        final ChoosePanelAdapter adapter = new ChoosePanelAdapter(MainActivity.this, panelArrayList);
        
        listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,
        		android.R.layout.simple_expandable_list_item_1, data));
        
        listView.setOnItemClickListener(new OnItemClickListener() 
        {
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) 
			{
				panelArrayList.add(data.get(position));
				adapter.notifyDataSetChanged();
			}
		});
        
        gvPanel.setAdapter(adapter);
    }

    /**
     * DataSource
     * 
     * 
     * */
    private List<String> getData()
    {
    	List<String> list = new ArrayList<String>();
    	list.add("张三");
    	list.add("李四");
    	list.add("王五");
    	list.add("赵六");
    	list.add("乔丹");
    	list.add("爱斯基摩");
    	list.add("维也纳");
    	list.add("周星星");
    	return list;
    }
}

 

 布局文件activity_main.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <GridView
        android:id="@+id/gv_panel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numColumns="auto_fit"
        android:columnWidth="60dp"
        android:layout_alignParentTop="true"
        android:verticalSpacing="5dp"
	    android:horizontalSpacing="5dp"
	    android:stretchMode="columnWidth"
         />

    <ListView 
        android:id="@+id/listview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/gv_panel"
        />
    
</RelativeLayout>
 

项目下载地址:

https://github.com/michaelye/DemoChooseValues

 


    
[2] UITextView封闭键盘
    来源: 互联网  发布时间: 2014-02-18
UITextView关闭键盘
1.如果你程序是有导航条的,可以在导航条上面加多一个Done的按钮,用来退出键盘,当然要先实UITextViewDelegate。
- (void)textViewDidBeginEditing:(UITextView *)textView {  
   UIBarButtonItem *done =    [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leaveEditMode)] autorelease];  
   self.navigationItem.rightBarButtonItem = done;      
}  
  
- (void)textViewDidEndEditing:(UITextView *)textView {  
    self.navigationItem.rightBarButtonItem = nil;  
}  
  
- (void)leaveEditMode {  
    [self.textView resignFirstResponder];  
}  


2.如果你的textview里不用回车键,可以把回车键当做退出键盘的响应键。
代码如下:
#pragma mark - UITextView Delegate Methods   
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text  
{  
    if ([text isEqualToString:@"\n"]) {  
        [textView resignFirstResponder];  
        return NO;  
    }  
    return YES;  
}  

这样无论你是使用电脑键盘上的回车键还是使用弹出键盘里的return键都可以达到退出键盘的效果。

3.第三种方法感觉效果比上面两种都好,就是在弹出的键盘上面加一个view来放置退出键盘的Done按钮。
- (void) initFeedText{
    //初始化 UITextView
    CGRect frame = CGRectMake(12, 0, 160, 88);
    textFeed = [[UITextView alloc] initWithFrame:frame];
    textFeed.delegate = self;
    textFeed.font = [UIFont fontWithName:@"TrebuchetMS" size:16];
    textFeed.backgroundColor = [UIColor clearColor];
    textFeed.autocorrectionType = UITextAutocorrectionTypeYes;
    textFeed.autocapitalizationType = UITextAutocapitalizationTypeNone;
    textFeed.keyboardType = UIKeyboardTypeDefault;
    textFeed.returnKeyType = UIReturnKeyDone;
    textFeed.delegate = self;
    
    //在弹出的键盘上面加一个view来放置退出键盘的Done按钮
    UIToolbar * topView = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];  
    [topView setBarStyle:UIBarStyleDefault];
    UIBarButtonItem * btnSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
    UIBarButtonItem * doneButton = [[UIBarButtonItem alloc] initWithTitle:@"完成" style:UIBarButtonItemStyleDone target:self action:@selector(dismissKeyBoard)];    
    NSArray * buttonsArray = [NSArray arrayWithObjects:btnSpace, doneButton, nil]; 
    [btnSpace release];
    [doneButton release];
    [topView setItems:buttonsArray];
    [textFeed setInputAccessoryView:topView];
    [topView release];
}

//关闭键盘
-(void) dismissKeyBoard{
    [textFeed resignFirstResponder];
}


推荐第三种,很好用~

    
[3] Mac系统上查看鼠标所在点的RGB值-数码测色计
    来源: 互联网  发布时间: 2014-02-18
Mac系统下查看鼠标所在点的RGB值--数码测色计
苹果电脑的Mac OS X系统自带鼠标所在点颜色RGB值查看工具:数码测色计。打开Finder(Dock栏第一个笑脸图标),选择应用程序--实用工 具--数码测色计,双击即可启动。

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