当前位置: 首页 > news >正文

优秀个人网站模板下载免费发布产品信息网站

优秀个人网站模板下载,免费发布产品信息网站,郴州网站小程序,外贸询单由于Android并未提供滑动开关之类的组件#xff0c;所以我们需要自己去实现一个自定义的视图组件来实现滑动开关效果。这里有一个示例代码#xff0c;它包括三个类#xff1a;开关组件视图、状态监听接口、MainActivity我们先来看看整个demo的效果图#xff1a;我们先来看看…由于Android并未提供滑动开关之类的组件所以我们需要自己去实现一个自定义的视图组件来实现滑动开关效果。这里有一个示例代码它包括三个类开关组件视图、状态监听接口、MainActivity我们先来看看整个demo的效果图我们先来看看视图组件的完整代码代码都已经注释package com.bear.swtichbuttondemo;import java.util.ArrayList;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Matrix;import android.graphics.Paint;import android.graphics.Rect;import android.util.AttributeSet;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;/*** 自定义滑动开关*/public class MySwitchButton extends View implements OnTouchListener {private Bitmap switchOnBkg; // 开关开启时的背景private Bitmap switchOffBkg; // 开关关闭时的背景private Bitmap slipSwitchButton; // 滑动开关的图片private boolean isSlipping false; // 是否正在滑动private boolean isSwitchOn false; // 当前开关的状态true表示开启flase表示关闭private float previousX; // 手指按下时的水平坐标xprivate float currentX; // 当前的水平坐标Xprivate ArrayList onSwitchListenerList; // 开关监听器列表public MySwitchButton(Context context, AttributeSet attrs) {super(context, attrs);init();}private void init() {this.setOnTouchListener(this); // 设置触摸监听器onSwitchListenerList new ArrayList();}public void setImageResource(int switchBkg, int slipBtn) {switchOnBkg BitmapFactory.decodeResource(this.getResources(),switchBkg);switchOffBkg BitmapFactory.decodeResource(this.getResources(),switchBkg);slipSwitchButton BitmapFactory.decodeResource(this.getResources(),slipBtn);}public void setSwitchState(boolean switchState) {this.isSwitchOn switchState;this.invalidate();}public boolean getSwitchState() {return this.isSwitchOn;}public void setOnSwitchStateListener(OnSwitchListener listener){onSwitchListenerList.add(listener);}Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Matrix matrix new Matrix();Paint paint new Paint();float leftSlipBtnX; // 滑动按钮的左边坐标//画开关的背景图片canvas.drawBitmap(switchOnBkg, matrix, paint);if (isSlipping) {// 如果正在滑动if (currentX switchOnBkg.getWidth()) {leftSlipBtnX switchOnBkg.getWidth()- slipSwitchButton.getWidth();} else {leftSlipBtnX currentX - slipSwitchButton.getWidth();}} else {//如果没有滑动if (isSwitchOn) {leftSlipBtnX switchOnBkg.getWidth()- slipSwitchButton.getWidth();} else {leftSlipBtnX 0;}}//如果手指滑出了开关的范围应当这样处理if (leftSlipBtnX 0) {leftSlipBtnX 0;} else if (leftSlipBtnX switchOnBkg.getWidth()- slipSwitchButton.getWidth()) {leftSlipBtnX switchOnBkg.getWidth() - slipSwitchButton.getWidth();}//在画布上画开关图片canvas.drawBitmap(slipSwitchButton, leftSlipBtnX, 0, paint);}Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {super.onMeasure(widthMeasureSpec, heightMeasureSpec);setMeasuredDimension(switchOnBkg.getWidth(), switchOnBkg.getHeight());}Overridepublic boolean onTouch(View v, MotionEvent event) {//获取触摸动作类型int action event.getAction();switch (action) {case MotionEvent.ACTION_MOVE://如果现在处于手指一动状态currentX event.getX();break;case MotionEvent.ACTION_DOWN://如果现在手指刚刚按上屏幕状态isSlipping true;break;case MotionEvent.ACTION_UP://如果现在手指刚刚离开屏幕状态isSlipping false;boolean previousState isSwitchOn;if (event.getX() (switchOnBkg.getWidth() / 2)) {isSwitchOn true;} else {isSwitchOn false;}//调用接口回调方法将开关状态通知给监听对象if(previousState ! isSwitchOn){if(onSwitchListenerList.size() 0){for(OnSwitchListener listener : onSwitchListenerList){listener.onSwitched(isSwitchOn);}}}break;default:break;}this.invalidate();return true;}}我们再来看看开关状态监听接口代码如下package com.bear.swtichbuttondemo;public interface OnSwitchListener {public abstract void onSwitched(boolean isSwitchOn);}最后是我们的Activity中的代码这里需要传两张图片给自定义组件当然你也可以传两张自己做好的图片代码如下package com.bear.swtichbuttondemo;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {private MySwitchButton mySwitchButton;private Button myBtn;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setupViews();}private void setupViews() {mySwitchButton (MySwitchButton) findViewById(R.id.my_switch_button);//传图片给自定义组件mySwitchButton.setImageResource(R.drawable.switch_bkg_switch,R.drawable.switch_btn_slip);myBtn (Button) findViewById(R.id.button);//设置开关状态监听mySwitchButton.setOnSwitchStateListener(new OnSwitchListener() {Overridepublic void onSwitched(boolean isSwitchOn) {if (isSwitchOn) {Toast.makeText(MainActivity.this, 开关开启,Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, 开关关闭,Toast.LENGTH_SHORT).show();}}});myBtn.setOnClickListener(new OnClickListener() {Overridepublic void onClick(View v) {boolean isOn mySwitchButton.getSwitchState();mySwitchButton.setSwitchState(!isOn);}});}}最后附上Android之实现滑动开关组件代码的下载地址------------------------------------------分割线------------------------------------------具体下载目录在 /2014年资料/12月/15日/Android之实现滑动开关组件------------------------------------------分割线------------------------------------------
http://www.zqtcl.cn/news/273622/

相关文章:

  • 贵州建设网老网站手机网站建设运营方案
  • 网站方案范文唐山自助建站模板
  • 金华网站制作网站建设的功能需求
  • 用iis建立网站口碑营销案例分析
  • 注册网站要求线上设计师与线下设计师的区别
  • 个人备案 网站内容网站备案如何查询
  • 宿州科技网站建设百度网站外链发布平台
  • 织梦移动网站wordpress父文章显示不全
  • 游戏攻略网站怎么做网站开发需求确认书
  • 做高大上分析的网站电商到底干嘛的
  • 物流网站哪个好网络推广就找南昌莫非传媒
  • 查看网站空间企业网站管理系统介绍
  • 重庆市工程建设信息网新网站艺术品商城网站开发
  • 上海网站制作商wordpress改主题
  • 钰鸣厦门网站建设2023热点新闻事件
  • 网络营销的主要形式有建设网站免费搭建网站哪个好
  • 建一个网站需要哪些人aso是什么意思
  • 电商网站有哪些淘宝运营培训班哪里有
  • 网站开发网站制作太原优化排名推广
  • 佛山市网站开发桥西区建设局网站
  • 怎么制作网站应用云主机上传wordpress
  • flash网站代做马鞍山网站建设制作公司
  • 温州网站的优化wordpress 注册邮箱验证失败
  • php网站开发实例视频教程宁波seo运营推广平台排名
  • 网络营销网站开发设计公司网站推广营销
  • 2015年做那个网站致富wordpress最新模板
  • 做网站开发平台北京广告公司有哪些
  • 郑州企业建站系统模板兰州需要做网站的公司有哪些
  • 怎样做网站卖东西 自己有货句容网络公司
  • 网站建设协议书 保密条款免费发布推广的网站