当前位置:  编程技术>移动开发
本页文章导读:
    ▪drawable-mdpi,drawable-ldpi这几个文件夹的功用        drawable-mdpi,drawable-ldpi这几个文件夹的作用   在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。  drawable- hdpi、drawab.........
    ▪ 贪食蛇开发有关问题3        贪食蛇开发问题3   很早以前就听说,学编程时写出来的,不是看出来的。。认认真真的写个能用的东西确实能让人成长很多,至少我在开发这个贪食蛇的时候,我获取了很多,昨天以为自.........
    ▪ ListView跟各种Adapter的使用       ListView和各种Adapter的使用 1,和最简单的ArrayAdapter的使用: package com.wt.app; import android.app.ListActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListAdapter; public class App .........

[1]drawable-mdpi,drawable-ldpi这几个文件夹的功用
    来源: 互联网  发布时间: 2014-02-18
drawable-mdpi,drawable-ldpi这几个文件夹的作用
  在之前的版本中,只有一个drawable,而2.1版本中有drawable-mdpi、drawable-ldpi、drawable-hdpi三个,这三个主要是为了支持多分辨率。

  drawable- hdpi、drawable- mdpi、drawable-ldpi的区别:

  (1)drawable-hdpi里面存放高分辨率的图片,如WVGA (480x800),FWVGA (480x854)

  (2)drawable-mdpi里面存放中等分辨率的图片,如HVGA (320x480)

  (3)drawable-ldpi里面存放低分辨率的图片,如QVGA (240x320)

  系统会根据机器的分辨率来分别到这几个文件夹里面去找对应的图片。

  在开发程序时为了兼容不同平台不同屏幕,建议各自文件夹根据需求均存放不同版本图片。

    
[2] 贪食蛇开发有关问题3
    来源: 互联网  发布时间: 2014-02-18
贪食蛇开发问题3

  很早以前就听说,学编程时写出来的,不是看出来的。。认认真真的写个能用的东西确实能让人成长很多,至少我在开发这个贪食蛇的时候,我获取了很多,昨天以为自己克服了屏幕的问题,结果真机测试的时候,屏幕还是出问题了,在手机上屏幕的上方会出现一个横栏,而实际的用的屏幕并没有那么大,后来我看了NOKIA的界面开发文档才知道用哪个界面大小。

  昨天说要把各个模块细分下去,今天实行下去发现并没有那么简单,在写的时候要不断地分析,怎样才能让代码更简单,更容易看,更规范,更有章法。。在不断写的过程中,我觉得我也在进步。。此刻我深深的觉得 开发文档非常难写,特别是当没开发过这个游戏的时候,完全不知道会用的什么东西,应该怎样写,应该要有什么类,或者当开发的项目多了,也有了一个清晰地框架,但是对于现在的我来说,还很模糊,我只能凭着自己的感觉去写,怎么让自己的代码,更内聚,更具有可用性,更健壮。。可能有些人觉得写个贪食蛇也这么多的感慨,不过我的最近的座右铭:选择我爱的,爱我选择的。我选择了这个,所以我应该爱她,爱她就应该让她更加完美,不管她是一个简单的东西,还是复杂的。。

1 楼 kevinlynx 2011-01-17  
找点OO、设计模式的书看看。开发之前先作详细的设计,整理模块结构,整理类结构,甚至类接口规划,总之就是在实际编码之前作足够的规划。
2 楼 一口三个汉堡 2011-01-17  
kevinlynx 写道
找点OO、设计模式的书看看。开发之前先作详细的设计,整理模块结构,整理类结构,甚至类接口规划,总之就是在实际编码之前作足够的规划。

恩,谢谢

    
[3] ListView跟各种Adapter的使用
    来源: 互联网  发布时间: 2014-02-18
ListView和各种Adapter的使用
1,和最简单的ArrayAdapter的使用:
package com.wt.app;

import android.app.ListActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;

public class App extends ListActivity {
	String[] array={/*"aaa","bbb","ccc"*/};
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //为空时的显示内容
        this.getListView().setEmptyView(findViewById(R.id.empty));
        
        ListAdapter adapter=new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,array);
        this.setListAdapter(adapter);
    }
}

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ListView 
    android:id="@+id/android:list"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    />
    
<TextView 
	android:id="@+id/empty"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical"
    android:text="Nothing"
    />
</LinearLayout>


2,和SimpleAdapter的使用:
package com.wt.app;

import java.util.ArrayList;
import java.util.HashMap;

import android.app.Activity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.AdapterView.OnItemClickListener;

public class App extends Activity {
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //绑定Layout里面的ListView
        ListView list = (ListView) findViewById(R.id.ListView01);
        
        //生成动态数组,加入数据
        ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>();
        int[] images=new int[]{android.R.drawable.ic_menu_add,android.R.drawable.ic_menu_delete,android.R.drawable.ic_menu_edit,android.R.drawable.ic_menu_view};
        for(int i=0;i<4;i++)
        {
        	HashMap<String, Object> map = new HashMap<String, Object>();
        	map.put("itemImage", images[i]);//图像资源的ID
        	map.put("itemTitle", "Title "+i);
        	map.put("itemText", "this is Text "+i);
        	listItem.add(map);
        }
        //生成适配器的Item和动态数组对应的元素
        SimpleAdapter listItemAdapter = new SimpleAdapter(this,listItem,//数据源 
            R.layout.row,//ListItem的XML实现
            //动态数组与ImageItem对应的子项        
            new String[] {"itemImage","itemTitle", "itemText"}, 
            //ImageItem的XML文件里面的一个ImageView,两个TextView ID
            new int[] {R.id.itemImage,R.id.itemTitle,R.id.itemText}
        );
       
        //添加并且显示
        list.setAdapter(listItemAdapter);
        //添加点击
        list.setOnItemClickListener(new OnItemClickListener() {

			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				setTitle("点击第"+arg2+"个项目");
			}
		});
        
      //添加长按点击
        list.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
			
			public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
				menu.setHeaderTitle("长按菜单-ContextMenu");   
				menu.add(0, 0, 0, "弹出长按菜单0");
				menu.add(0, 1, 0, "弹出长按菜单1");   
			}
		}); 
    }
	
	//长按菜单响应函数
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目"); 
		return super.onContextItemSelected(item);
	}
}

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
	<ListView android:layout_width="wrap_content"   
          android:layout_height="wrap_content"   
          android:id="@+id/ListView01"  
    />  
</LinearLayout>\

row.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
	android:id="@+id/RelativeLayout01" 
	android:layout_width="fill_parent" 
	xmlns:android="http://schemas.android.com/apk/res/android" 
	android:layout_height="wrap_content" 
	android:paddingTop="4dip" 
	android:paddingBottom="4dip" 
	android:paddingLeft="12dip"
	android:paddingRight="12dip">
<ImageView 
	android:paddingTop="12dip"
	android:layout_alignParentRight="true"
	android:layout_width="wrap_content" 
	android:layout_height="wrap_content" 
	android:id="@+id/itemImage"
	/> 
<TextView 
    android:layout_height="wrap_content" 
    android:textSize="20dip" 
    android:layout_width="fill_parent" 
    android:id="@+id/itemTitle"
    />
<TextView 
	android:layout_height="wrap_content" 
	android:layout_width="fill_parent" 
	android:layout_below="@+id/itemTitle" 
	android:id="@+id/itemText"
	/>
</RelativeLayout>


3,和SimpleCursorAdapter的使用:
package com.wt.app;

import android.app.Activity;
import android.app.PendingIntent;
import android.content.ContentUris;
import android.content.Intent;
import android.database.Cursor;
import android.database.CursorWrapper;
import android.graphics.Color;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.telephony.PhoneNumberUtils;
import android.telephony.gsm.SmsManager;
import android.util.Log;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;

public class App extends Activity {
	private static final String TAG="App";
	ListView listView;
	ListAdapter adapter;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // setContentView(R.layout.main);
        LinearLayout linearLayout=new LinearLayout(this);
        linearLayout.setOrientation(LinearLayout.VERTICAL);
        linearLayout.setBackgroundColor(Color.BLACK);
        LinearLayout.LayoutParams param=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
        
        listView=new ListView(this);
        listView.setBackgroundColor(Color.BLACK);
        
        linearLayout.addView(listView,param);
        
        this.setContentView(linearLayout);
        
        //从数据库获取联系人姓名和电话号码
        Cursor cur=this.getContentResolver().query(People.CONTENT_URI,null, null,null,null);
        adapter=new SimpleCursorAdapter(this,android.R.layout.simple_list_item_2,cur,new String[]{People.NAME,People.NUMBER},new int[]{android.R.id.text1,android.R.id.text2});
        this.startManagingCursor(cur);
        listView.setAdapter(adapter);
        //listView.setEmptyView(findViewById(R.id.empty));
        
        listView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

			public void onItemSelected(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				// TODO Auto-generated method stub
				//openToast("滚动到:"+arg0.getSelectedItemId());
				//短信发送
//				PendingIntent pi = PendingIntent.getActivity(App.this,0,new Intent(App.this,App.class),0);
//				SmsManager sms = SmsManager.getDefault();  
//				sms.sendTextMessage("5554", null, "message", pi, null); 
			}

			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub
				
			}
        	
        });
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){

			public void onItemClick(AdapterView<?> arg0, View arg1, int position,
					long arg3) {
				// TODO Auto-generated method stub
//				String[] names=((CursorWrapper)listView.getItemAtPosition(position)).getColumnNames();
				//从指针的封装类中获得选中项的电话号码并拨号
				CursorWrapper wrapper=(CursorWrapper)listView.getItemAtPosition(position);
				int columnIndex=wrapper.getColumnIndex(People.NUMBER);
				if(!wrapper.isNull(columnIndex)){
					String number=wrapper.getString(columnIndex);
					Log.d(TAG,"number="+number);
	//				//判断电话号码的有效性
					if(PhoneNumberUtils.isGlobalPhoneNumber(number)){
						Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel://"+ number));
						startActivity(intent);
					}
				}
/*
//直接拨号,需要CALL_PHONE权限
				Intent intent=new Intent(Intent.ACTION_CALL);
                Cursor c=(Cursor)adapter.getItem(position);
                long phoneID=c.getLong(c.getColumnIndex(People.PRIMARY_PHONE_ID));
                intent.setData(ContentUris.withAppendedId(android.provider.
                                             Contacts.Phones.CONTENT_URI, phoneID));
                startActivity(intent);
                */

			}
        });
      //添加长按点击,弹出快显菜单
        listView.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
			
			public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
				menu.setHeaderTitle("你想要...?").setHeaderIcon(R.drawable.icon); 
				menu.add(0, 0, 0, "删除").setIcon(R.drawable.icon);
				menu.add(0, 1, 0, "修改").setIcon(R.drawable.icon);   
			}
		});
    }
  //长按菜单响应函数
	@Override
	public boolean onContextItemSelected(MenuItem item) {
		//setTitle("点击了长按菜单里面的第"+item.getItemId()+"个项目"); 
		openToast("你点击了"+item.getTitle());
		return super.onContextItemSelected(item);
	}
    private void openToast(String str){
    	Toast.makeText(this,str,Toast.LENGTH_SHORT).show();
    }
}

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.wt.app"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".App"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <!-- 点击拨号时,询问调用默认的程序还是调用本程序拨号 -->
		   <intent-filter> 
			   <action android:name="android.Intent.Action.CALL_BUTTON" />
			   <category android:name="android.Intent.Category.DEFAULT" /> 
		   </intent-filter> 
        </activity>

    </application>
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.CALL_PHONE"/>
    <uses-sdk android:minSdkVersion="3" />

</manifest> 

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
unix/linux知识 iis7站长之家
▪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