当前位置:  编程技术>移动开发
本页文章导读:
    ▪时间窗口施用 DatePicker        时间窗口使用 DatePicker DatePicker 创建DatePickerDialog的步骤       case 6:            //此方法用于显示DatePickerDialog            showDialog(DATE_PICK_ID);            break;        default:  .........
    ▪ textview 总结        textview 小结 1、android:ems  ——设置为n个汉字的宽度。 textview的宽度设了wrap_content   2、跑马灯效果:    android:focusable="true" android:focusableInTouchMode="true" android:singleLine="true" android.........
    ▪ 仿淘宝"摆一摇&quot       仿淘宝"摇一摇" 前几天看到淘宝最新的客户端有一个弱网络情况数据加载超时,手持摇一摇即可手动刷新功能,觉得蛮有趣,便自己抽空实现了下,并增加了摇动时对话框抖动和声音的效果.........

[1]时间窗口施用 DatePicker
    来源: 互联网  发布时间: 2014-02-18
时间窗口使用 DatePicker
DatePicker

创建DatePickerDialog的步骤

 

    case 6:

           //此方法用于显示DatePickerDialog

           showDialog(DATE_PICK_ID);

           break;

       default:

           break;

       }

    return super.onOptionsItemSelected(item);

    }

    //监听器,用于在时间对话框点击DatePickerDialog的set时所设置的年月日

    DatePickerDialog.OnDateSetListener onDateSetListener=new DatePickerDialog.OnDateSetListener() {

       @Override

       public void onDateSet(DatePicker view, int year, int monthOfYear,

              int dayOfMonth) {

           Log.d("mydebug",year+":"+monthOfYear+":"+dayOfMonth);

       }

    };

    @Override

    protected Dialog onCreateDialog(int id) {

    switch (id) {

       case DATE_PICK_ID:

           return new DatePickerDialog(this, onDateSetListener, 2012, 0, 15);

       }

    return null;

}

 


    
[2] textview 总结
    来源: 互联网  发布时间: 2014-02-18
textview 小结

1、android:ems  ——设置为n个汉字的宽度。 textview的宽度设了wrap_content

 

2、跑马灯效果:

  

    android:focusable="true"
    android:focusableInTouchMode="true"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever" 

 

3、单行:…

     android:singleline ——设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来  表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显“t…”。如果不设置singleLine或者设置为false,文本将自动换行

 

 

 android:ellipsize="middle"
    android:singleLine="true"

组合使用也可以设置省略号

 

4、android:eclipsize

    设置当文字过长时,该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结    尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)

 

 5、2行设置末尾省略号:

 

    android:ellipsize="end"
    android:maxLines="2"


    
[3] 仿淘宝"摆一摇&quot
    来源: 互联网  发布时间: 2014-02-18
仿淘宝"摇一摇"

前几天看到淘宝最新的客户端有一个弱网络情况数据加载超时,手持摇一摇即可手动刷新功能,觉得蛮有趣,便自己抽空实现了下,并增加了摇动时对话框抖动和声音的效果。

 

效果图如下:

 

 

 

 

 

  主要代码如下,具体代码可以参见附件:

 

/**
 * 摇一摇,尝试重新连接网络
 * @ClassName: ShakeDialog
 * @author 姜涛
 * @version 1.0 2012-2-2 上午10:26:09
 */
public class ShakeDialog extends AlertDialog implements OnClickListener,
		SensorEventListener {

	private View view;
	private Context mContext;
	private Button settingBtn, retryBtn, backBtn;

	private SensorManager mSensorManager;
	private long firstTime = 0, endTime = 0;
	private float x, last_x;
	private float y, last_y;
	private float z, last_z;
	private MediaPlayer mediaPlayer;

	private static final int CHECK_NET = 1;
	private static final long TIME = 1000;
	private final Handler handler = new Handler() {

		@Override
		public void handleMessage(Message msg) {
			switch (msg.what) {

			case CHECK_NET:

				if (NetUtils.checkNetwork(mContext)) {
					dismiss();
				} else {
					view.setVisibility(View.VISIBLE);
				}

				break;

			}
		}

	};

	public ShakeDialog(Context context) {
		super(context);
		this.mContext = context;
	}

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		view = getLayoutInflater().inflate(R.layout.connecterror_layout, null);
		setContentView(view);

		initUi();
		initView();
		addListener();
	}

	@Override
	protected void onStop() {
		if (mSensorManager != null)
			mSensorManager.unregisterListener(this);
		if (mediaPlayer != null)
			mediaPlayer.release();
		super.onStop();
	}

	private void initUi() {
		settingBtn = (Button) findViewById(R.id.setting);
		retryBtn = (Button) findViewById(R.id.retry);
		backBtn = (Button) findViewById(R.id.back);

		mSensorManager = (SensorManager) mContext
				.getSystemService(Context.SENSOR_SERVICE);
		mSensorManager.registerListener(this,
				mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
				SensorManager.SENSOR_DELAY_UI); // 注册加速度感应器
		mediaPlayer = new MediaPlayer();
	}

	private void initView() {
		try {
			AssetFileDescriptor fd = mContext.getResources().getAssets()
					.openFd("sound/shake_sound_male.mp3");
			mediaPlayer.setDataSource(fd.getFileDescriptor(),
					fd.getStartOffset(), fd.getLength());
			mediaPlayer.prepare();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	private void addListener() {
		settingBtn.setOnClickListener(this);
		retryBtn.setOnClickListener(this);
		backBtn.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {

		case R.id.setting: // 设置网络

			Intent intent = new Intent(
					android.provider.Settings.ACTION_WIRELESS_SETTINGS);
			mContext.startActivity(intent);

			break;

		case R.id.retry: // 重试

			view.setVisibility(View.INVISIBLE);

			handler.sendEmptyMessageDelayed(CHECK_NET, TIME);

			break;

		case R.id.back: // 返回

			cancel();

			break;

		}
	}

	/**
	 * 传感器精确度变化时调用
	 */
	@Override
	public void onAccuracyChanged(Sensor sensor, int accuracy) {
		// TODO Auto-generated method stub

	}

	/**
	 * 传感器数据变化时调用
	 */
	@Override
	public void onSensorChanged(SensorEvent event) {

		int sensorType = event.sensor.getType();
		float[] values = event.values;

		if (sensorType == Sensor.TYPE_ACCELEROMETER) {

			firstTime = System.currentTimeMillis();
			if ((firstTime - endTime) > 100) {
				long betweenTime = firstTime - endTime;
				/**
				 * x方向就是手机的水平方向,右为正   
				 * y方向就是手机的水平垂直方向,前为正   
				 * y方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负
				 */
				x = values[SensorManager.DATA_X];
				y = values[SensorManager.DATA_Y];
				z = values[SensorManager.DATA_Z];
				float speed = Math.abs(x + y + z - last_x - last_y - last_z)
						/ betweenTime * 10000;

				if (speed > 1000) {
					view.startAnimation(AnimationUtils.loadAnimation(mContext,
							R.anim.shake));

					mediaPlayer.start();

					handler.sendEmptyMessageDelayed(CHECK_NET, TIME);
				}
				last_x = x;
				last_y = y;
				last_z = z;
				endTime = System.currentTimeMillis();
			}

		}

	}

	static class NetUtils {

		/**
		 * 判断网络的连接情况
		 * 
		 * @param context
		 * @return
		 */
		public static boolean checkNetwork(Context context) {
			boolean result;
			ConnectivityManager manager = (ConnectivityManager) context
					.getSystemService(Context.CONNECTIVITY_SERVICE);
			NetworkInfo info = manager.getActiveNetworkInfo();
			if (manager == null || info == null || !info.isAvailable()
					|| !info.isConnected()) {
				result = false;
			} else {
				result = true;
			}
			return result;
		}
	}
}

 


 

 

 

1 楼 573842281 2012-05-27  
压缩包里面没有什么东西啊!

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装 iis7站长之家
▪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