`
quankevin
  • 浏览: 5036 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

抽屉中关闭时默认显示一部分的内容

 
阅读更多

             先说下标题的意思,因为当时问了一些人,就是这么问的,说不知道啥意思,没理解我想干什么,这个意思就是。。。抽屉难道一定要完全关着或完全开着吗?我只开一部分然后声称我这个抽屉是关着的不行么。
算了,先贴个效果图:
这个情况是抽屉关着的时候:



 
这个情况是抽屉开着的时候


这是股票的一个抽屉。 然后boss给我说还有3个,顿时纠结,幸亏把内容最为丰富的股票给先搞定了。

。。。。就是这样,一开始就想着把抽屉的手柄写大点,用一个LinearLayout布局来做手柄,但是这样一来,发现布局里面的所有的按钮都相应了我的点击事件,擦。在抽屉手把位置的左边,有个按钮,点击一下会变成减号,但是如果是这样的话,那么我只要一点手柄,他也跟着变了。寻找了一些方法,未果,终于在csdn的一个问题帖子上找到了类似的情况。
基本的思路就是,先拦截了所有抽屉手柄的触摸事件,然后在找出用户想作为手柄的控件id,以及他们的屏幕位置。当点击到那些位置的时候,再做判断。


直接上代码,比较少代码就能实现的,理解起来也不困难,当然,要熟悉Android的控件所对应的实现方法会更简单:

 

public class MySlidingDrawer extends SlidingDrawer {

	private int mHandleId = 0; // 抽屉行为控件ID
	private int[] mTouchableIds = null; // Handle 部分其他控件ID

	public int getHandleId() {
		return mHandleId;
	}

	public void setHandleId(int mHandleId) {
		this.mHandleId = mHandleId;
	}

	public int[] getTouchableIds() {
		return mTouchableIds;
	}

	public void setTouchableIds(int[] mTouchableIds) {
		this.mTouchableIds = mTouchableIds;
	}

	public MySlidingDrawer(Context context, AttributeSet attrs) {
		super(context, attrs);

	}

	public MySlidingDrawer(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);

	}

	/*
	 * 获取控件的屏幕区域
	 */
	public Rect getRectOnScreen(View view) {
		Rect rect = new Rect();
		int[] location = new int[2];
		View parent = view;
		if (view.getParent() instanceof View) {
			parent = (View) view.getParent();
		}
		parent.getLocationOnScreen(location);
		view.getHitRect(rect);
		rect.offset(location[0], location[1]);
		return rect;
	}

	// 拦截触摸事件,用以修改事件
	@Override
	public boolean onInterceptTouchEvent(MotionEvent event) {

		// 确定控件的屏幕区域
		int[] location = new int[2];
		int x = (int) event.getX();
		int y = (int) event.getY();
		this.getLocationOnScreen(location);
		x += location[0];
		y += location[1];
		// handle部分独立按钮,循环寻找非抽屉手柄的布局。
		if (mTouchableIds != null) {
			for (int id : mTouchableIds) {
				View view = findViewById(id);
				Rect rect = getRectOnScreen(view);
				if (rect.contains(x, y)) {
					Log.i("MySlidingDrawer on touch", String.format(
							"Action=%d Button=%s", event.getAction(),
							((LinearLayout) view).getContext().toString()));
					// return
					boolean result = view.dispatchTouchEvent(event);
					Log.i("MySlidingDrawer dispatchTouchEvent", "" + result);
					return false;
				}
			}
		}

		// 抽屉行为控件,本想同上,写成数组,寻找多个手柄,但是这样就没有了抽屉拖动效果
		if (event.getAction() == MotionEvent.ACTION_DOWN && mHandleId != 0) {
			View view = findViewById(mHandleId);

			Log.i("MySlidingDrawer on touch", String.format("%d,%d", x, y));

			Rect rect = getRectOnScreen(view);

			Log.i("MySlidingDrawer handle screen rect", String
					.format("%d,%d %d,%d", rect.left, rect.top, rect.right,
							rect.bottom));
			if (rect.contains(x, y)) {// 点击抽屉控件时交由系统处理
				Log.i("MySlidingDrawer", "Hit handle");
			} else {
				return false;
			}
		}
		return super.onInterceptTouchEvent(event);
	}

	// 获取触屏事件
	@Override
	public boolean onTouchEvent(MotionEvent event) {

		return super.onTouchEvent(event);
	}

 

 大概就是这样的重写。

 

再来是布局文件:

<?xml version="1.0" encoding="UTF-8"?>

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


	<Button android:id="@+id/buttontest" android:layout_height="wrap_content"
		android:layout_width="wrap_content" android:text="test" />
	<!-- bottom menu -->


	<!-- 股票类 -->
	<com.quan.MySlidingDrawer android:id="@+id/stockDrawer"
		android:layout_width="fill_parent" android:layout_height="wrap_content"
		android:orientation="vertical" android:handle="@+id/handleStock"
		android:content="@+id/contentStock" android:visibility="visible">


		<!-- top view 3 rows -->
		<LinearLayout android:layout_width="fill_parent"
			android:id="@+id/handleStock" android:layout_height="85dip"
			android:orientation="vertical">
			<LinearLayout android:layout_height="wrap_content"
				android:layout_width="wrap_content" android:layout_gravity="center">
				<ImageButton android:layout_width="60dip" android:id="@+id/mbutton"
					android:layout_height="10dip" android:src="@drawable/up"
					android:layout_gravity="center" />
			</LinearLayout>
			<!-- top left -->
			<LinearLayout android:layout_height="75dip"
				android:layout_width="fill_parent" android:orientation="horizontal"
				android:id="@+id/otherHandler" android:background="#000">
				<!-- top left -->
				<RelativeLayout android:id="@+id/topLeft"
					android:layout_width="39dip" android:layout_height="75dip"
					android:orientation="vertical">

					<Button android:layout_width="30dip" android:layout_height="30dip"
						android:id="@+id/btn_add_cut" android:layout_alignParentTop="true"
						android:layout_alignParentLeft="true" android:layout_gravity="center_vertical"
						android:focusable="true" android:background="@drawable/add" />
				</RelativeLayout>


				<RelativeLayout android:layout_width="120dip"
					android:layout_height="75dip">
					<TextView android:layout_height="50dip" android:text="2616.99"
						android:layout_width="wrap_content"
						android:layout_alignParentRight="true"
						android:layout_alignParentTop="true" android:gravity="right"
						android:id="@+id/tvCurrentPrice" android:textColor="#f00"
						android:textSize="30dip" android:layout_gravity="center_vertical" />

					<TextView android:text="+22.50" android:textColor="#f00"
						android:layout_height="wrap_content" android:layout_width="wrap_content"
						android:layout_alignParentBottom="true"
						android:layout_alignParentLeft="true" android:id="@+id/tvUpDown" />

					<TextView android:layout_height="wrap_content"
						android:text="0.21%" android:layout_width="wrap_content"
						android:layout_alignParentBottom="true"
						android:layout_alignParentRight="true" android:gravity="right"
						android:textColor="#f00" android:id="@+id/tvAmplitude" />
				</RelativeLayout>






				<View android:layout_width="1dip" android:layout_height="fill_parent"
					android:background="#ff0000" />

				<!-- top right -->
				<TableLayout android:id="@+id/topRight"
					android:layout_width="159dip" android:layout_height="fill_parent"
					android:orientation="vertical">
					<TableRow>
						<TextView android:text="委比" android:textColor="#848684"
							android:layout_height="24dip" android:layout_width="70dip"
							android:gravity="left" />
						<TextView android:id="@+id/tvAppoint" android:text="2.3%"
							android:textColor="#f00" android:layout_height="24dip"
							android:layout_width="89dip" android:gravity="right"
							android:paddingRight="2dip" />
					</TableRow>
					<View android:layout_height="1dip" android:layout_width="fill_parent"
						android:background="#f00" />
					<TableRow>
						<TextView android:text="委差" android:textColor="#848684"
							android:layout_height="24dip" android:layout_width="70dip"
							android:gravity="left" />
						<TextView android:id="@+id/tvPoorCom" android:text="32"
							android:textColor="#f00" android:layout_height="24dip"
							android:layout_width="89dip" android:gravity="right"
							android:paddingRight="2dip" />
					</TableRow>
					<View android:layout_height="1dip" android:layout_width="fill_parent"
						android:background="#f00" />
					<TableRow>
						<TextView android:text="量比" android:textColor="#848684"
							android:layout_height="24dip" android:layout_width="70dip"
							android:gravity="left" />
						<TextView android:id="@+id/tvReQuantity" android:text="-2.45"
							android:textColor="#0f0" android:layout_height="24dip"
							android:layout_width="89dip" android:gravity="right"
							android:paddingRight="2dip" />
					</TableRow>
				</TableLayout>

			</LinearLayout>

		</LinearLayout>








		<LinearLayout android:id="@+id/contentStock"
			android:layout_width="fill_parent" android:layout_height="fill_parent"
			android:orientation="vertical" android:background="#000">



			<View android:layout_height="1dip" android:layout_width="fill_parent"
				android:background="#f00" />

			<!-- bottom rows -->
			<LinearLayout android:id="@+id/bottomRows"
				android:layout_height="253dip" android:layout_width="fill_parent"
				android:orientation="horizontal">
				<!-- left table -->
				<TableLayout android:layout_height="fill_parent"
					android:layout_width="160dip">
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="均价" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<View android:layout_height="1dip" android:background="#f00" />
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="总手" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="现手" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:id="@+id/CURVOL" android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="金额" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:id="@+id/MONEY" android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<View android:layout_height="1dip" android:background="#f00" />
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="外盘" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<View android:layout_height="1dip" android:background="#f00" />
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="买一" android:gravity="left" />
						<TextView android:text="2539.82" android:textColor="#f00"
							android:layout_height="25dip" android:layout_width="80dip"
							android:gravity="center" />
						<TextView android:text="23" android:textColor="#AE8B00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="买二" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="买三" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="买四" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="买五" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" android:paddingRight="2dip" />
					</TableRow>
				</TableLayout>

				<!-- right table -->
				<TableLayout android:layout_height="fill_parent"
					android:layout_width="160dip">
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="昨收" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<View android:layout_height="1dip" android:background="#f00" />
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="开盘" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:id="@+id/OPEN" android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="最高" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:id="@+id/MAX" android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="最低" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:id="@+id/MIN" android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<View android:layout_height="1dip" android:background="#f00" />
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="内盘" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:id="@+id/INNER_TRAY" android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<View android:layout_height="1dip" android:background="#f00" />
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="卖一" android:gravity="left" />
						<TextView android:text="2549.82" android:textColor="#f00"
							android:layout_height="25dip" android:layout_width="80dip"
							android:gravity="center" />
						<TextView android:text="45" android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="卖二" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="卖三" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="卖四" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#C39C00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
					<TableRow>
						<TextView android:textColor="#848684"
							android:layout_height="25dip" android:layout_width="40dip"
							android:text="卖五" android:gravity="left" />
						<TextView android:textColor="#f00" android:layout_height="25dip"
							android:layout_width="80dip" android:gravity="center" />
						<TextView android:textColor="#AE8B00"
							android:layout_height="25dip" android:layout_width="40dip"
							android:gravity="right" />
					</TableRow>
				</TableLayout>
			</LinearLayout>
		</LinearLayout>
	</com.quan.MySlidingDrawer>


</RelativeLayout> 

         做完这些之后又把那三个布局写完,发现。。。你妹的,原来的布局是用一个相对布局来控制抽屉的拉伸长度。其他3个内容都没这么多,所以3个的下面都是空的,又搞笑呢。接着寻找抽屉适配内容进行长度控制。
   又是重写,烦躁的很啊。直接代码,主要思想就是先测量里面内容的高度。因为抽屉本身是没有写wrap_content(即适配内容高度来进行拉伸高度控制)的,所以重写的应该是这个部分。在一个英文的编程疑难解答上找到了答案。
           onMeasure是测量控件宽高的方法。setMeasuredDimension是设置到布局里~~~

 

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int widthSpecMode = MeasureSpec.getMode(widthMeasureSpec);
        int widthSpecSize = MeasureSpec.getSize(widthMeasureSpec);
        int heightSpecMode = MeasureSpec.getMode(heightMeasureSpec);
        int heightSpecSize = MeasureSpec.getSize(heightMeasureSpec);
        if (widthSpecMode == MeasureSpec.UNSPECIFIED
                || heightSpecMode == MeasureSpec.UNSPECIFIED) {
            throw new RuntimeException(
                    "SlidingDrawer cannot have UNSPECIFIED dimensions");
        }
        final View handle = getHandle();
        final View content = getContent();
        measureChild(handle, widthMeasureSpec, heightMeasureSpec);
        int extra = handle.getHeight() / 6;
        System.out.println(handle.getMeasuredHeight() + "        "
                + content.getHeight());
        if (mVertical) {
            int height = heightSpecSize - handle.getMeasuredHeight()/* + extra */
                    - mTopOffset;
            content.measure(widthMeasureSpec,
                    MeasureSpec.makeMeasureSpec(height, heightSpecMode));
            heightSpecSize = handle.getMeasuredHeight() /* + extra */
                    + mTopOffset + content.getMeasuredHeight();
            widthSpecSize = content.getMeasuredWidth();
            if (handle.getMeasuredWidth() > widthSpecSize)
                widthSpecSize = handle.getMeasuredWidth();
        }
        setMeasuredDimension(widthSpecSize, heightSpecSize);
    }
    private boolean mVertical;
    private int mTopOffset;

  直接把这段copy 到需要重写的抽屉类中,测试,搞定。

 

            但是发现左边的那个图标又不能点击了,变成了触摸,就是有一定位移才能改变他的变量。
经过多番努力,改了一下,把那个按钮放在一个布局里面再对布局进行点击监听,一切搞定~~

 

 

测试这个抽屉用的activity:

 

public class MainActivity extends Activity {
    private MySlidingDrawer mdrawer;// 抽屉
    private ImageButton mbutton;// 抽屉拉动按钮
    private LinearLayout otherHandler;
    private LinearLayout bottomRows;// 抽屉真正的内容
    private Button test;
    private TextView tv_top;
    private Button btn_add_cut;// 真实抽屉左上角按钮
    int i = 1;// 定义成员变量,协助点击左上角按钮时改变图标,点击+变成2,点击-变成1
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        findview();
        addlistener();
    }
    /** 初始化组件 */
    private void findview() {
        tv_top = (TextView) this.findViewById(R.id.tvCurrentPrice);
        test = (Button) this.findViewById(R.id.buttontest);
        mdrawer = (MySlidingDrawer) findViewById(R.id.stockDrawer);
        // 传入抽屉手柄的id
        mdrawer.setHandleId(R.id.mbutton);
        mdrawer.setTouchableIds(new int[] { R.id.otherHandler });
        mbutton = (ImageButton) findViewById(R.id.mbutton);
        otherHandler = (LinearLayout) this.findViewById(R.id.otherHandler);
        bottomRows = (LinearLayout) findViewById(R.id.bottomRows);
        btn_add_cut = (Button) findViewById(R.id.btn_add_cut);
    }
    /**
     * 给各个组建添加事件监听
     */
    private void addlistener() {
        test.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                tv_top.setText("8585");
            }
        });
        // 抽屉打开
        mdrawer.setOnDrawerOpenListener(new MySlidingDrawer.OnDrawerOpenListener() {
            public void onDrawerOpened() {
                mbutton.setImageResource(R.drawable.down);
            }
        });
        // 抽屉关闭
        mdrawer.setOnDrawerCloseListener(new MySlidingDrawer.OnDrawerCloseListener() {
            public void onDrawerClosed() {
                mbutton.setImageResource(R.drawable.up);
            }
        });
        // 抽屉正在拉动或停止拉动
        mdrawer.setOnDrawerScrollListener(new MySlidingDrawer.OnDrawerScrollListener() {
            public void onScrollStarted() {
            }
            public void onScrollEnded() {
            }
        });
        btn_add_cut.setOnClickListener(new ButtonAddCutListener());
        //
        // 真实抽屉,非头部部分,在打开状态点击时关闭抽屉
        bottomRows.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                if (mdrawer.isOpened()) {
                    mdrawer.animateClose();
                }
            }
        });
        // otherHandler.setOnClickListener(new ButtonAddCutListener());
    }
    /** 抽屉左上角按钮点击改变图片事件 */
    private class ButtonAddCutListener implements OnClickListener {
        @Override
        public void onClick(View v) {
            switch (i) {
            case 1:
                btn_add_cut.setBackgroundDrawable(getResources().getDrawable(
                        R.drawable.cut));
                // btn_add_cut_on.setImageResource(R.drawable.cut);
                i = 2;
                System.out.println("+");
                break;
            case 2:
                btn_add_cut.setBackgroundDrawable(getResources().getDrawable(
                        R.drawable.add));
                // btn_add_cut_on.setImageResource(R.drawable.add);
                i = 1;
                System.out.println("-");
                break;
            }
        }
    }
}

 要有会的高手帮我看看哪里写的不对哇。谢谢了。。。。。我是纯新手。





 

  • 大小: 10.7 KB
  • 大小: 6.5 KB
  • 大小: 25.8 KB
  • 大小: 48.9 KB
  • 大小: 37 KB
分享到:
评论

相关推荐

    DrawerLayout去除内容阴影,点击内容不关闭抽屉,抽屉默认打开,抽屉滑动时内容区域跟随移动

    在本示例中,我们将探讨如何实现特定的需求:去除内容区域的阴影,点击内容时不关闭抽屉,抽屉默认打开,并且在抽屉滑动时内容区域跟随移动。 首先,我们来看如何去除内容区域的阴影。在DrawerLayout中,默认情况下...

    可从上往下拉的下拉抽屉式控件

    在描述中提到的“默认会有一部分内容显示出来”,这可能指的是在主内容视图下方预览一部分抽屉内容。在`DrawerLayout`中,可以通过设置`android:layout_gravity`属性来控制抽屉的位置,以及通过调整抽屉布局的大小...

    android左右抽屉效果

    2. **主内容视图和抽屉视图**:在`DrawerLayout`内部,放置一个用于显示主要内容的布局(通常是一个`FrameLayout`或`RelativeLayout`),然后为抽屉创建一个单独的布局,可以是`LinearLayout`或`ListView`,并设置`...

    DrawerLayout去除阴影,阴影部分点击不关闭抽屉并可以触发相关view,抽屉侧滑可响应关闭

    在默认情况下,DrawerLayout会在主内容视图的边缘添加阴影效果,并且当用户点击阴影区域时,抽屉会自动关闭。然而,有时我们可能希望去除这个阴影效果,同时使阴影部分能够点击到背后的视图,且抽屉仍然可以通过侧滑...

    Android隐藏式抽屉

    handle通常是用户点击或滑动的触发器,而content则是在抽屉展开时显示的内容。在XML布局文件中,我们可以使用`&lt;SlidingDrawer&gt;`标签来创建这个控件。 在XML布局文件中,SlidingDrawer的属性主要有以下几个关键点: ...

    抽屉布局的使用

    抽屉布局的实现通常涉及到Android开发中的`DrawerLayout`组件,这是Android SDK中的一部分,属于`android.support.v4.widget`包。`DrawerLayout`允许开发者在主视图旁边添加一个或多个可以滑动显示的“抽屉”视图。...

    android上下左右抽屉

    抽屉布局在Android中主要用于提供导航菜单或者隐藏的额外内容,用户可以通过手势从屏幕边缘滑动来打开和关闭。 1. **Android DrawerLayout** 抽屉效果主要通过`DrawerLayout`组件来实现,它是Android官方提供的一...

    android抽屉式导航栏

    在Android应用开发中,抽屉式导航栏(DrawerLayout)是一种常见的设计模式,它允许用户通过从屏幕边缘向内滑动来展示一个可隐藏的菜单,通常用于放置导航选项。这个设计灵感来源于现实生活中的抽屉,因此得名。在本...

    Android 侧边抽屉效果

    在Android应用开发中,"侧边抽屉效果"(通常称为侧滑菜单或抽屉布局)是一种常见的设计模式,用于实现应用的主要导航功能。这种效果允许用户从屏幕边缘滑动,展示一个隐藏的菜单,通常包含应用的不同部分或设置选项...

    抽屉容器框架源代码的分析

    而`DrawerLayout`则是自Android 4.0(API Level 14)开始引入的,它是Google Material Design的一部分,支持左右两个方向的抽屉,并且与`NavigationView`等组件配合使用,提供了更丰富的功能和更好的用户体验。...

    实现QQ程序的抽屉效果

    抽屉效果是Android Material Design设计规范中的一个重要组成部分,增强了用户的交互体验。 实现抽屉效果主要涉及以下知识点: 1. **DrawerLayout**: Android提供的`android.support.v4.widget.DrawerLayout`(在...

    winform抽屉菜单.zip

    在C#编程环境中,WinForm应用是用于构建桌面应用程序的常用框架。"winform抽屉菜单.zip"这个压缩包很可能包含...同时,对Excel文件的处理能力也是开发过程中不可或缺的一部分,尤其是在需要处理大量数据或用户输入时。

    iOS侧拉抽屉

    在iOS应用开发中,侧拉抽屉(Side Drawer)是一种常见的设计模式,它通常用于实现导航菜单或显示附加内容。这种效果在很多App中都可以看到,例如Facebook、Instagram等,用户可以通过从屏幕边缘滑动来展示或隐藏菜单...

    android抽屉效果的ListView

    主内容区域是用户默认看到的部分,而抽屉区域则是在滑动后显示。通常,抽屉区域会包含一些额外的操作按钮或信息。 5. **事件回调**:`SlideListView`可能提供了回调接口,以便开发者在抽屉打开或关闭时执行特定的...

    android_Demo多种动画效果,抽屉效果、多种自定

    布局中包含两个部分,主内容区和抽屉区域,抽屉区域默认是隐藏的,通过手势或按钮触发显示。 2. **手势检测**:Android提供了GestureDetector和MotionEvent类来处理用户的滑动操作。通过监听滑动事件,可以判断是否...

    android 抽屉 UI 特效

    - 当抽屉打开时,系统默认会在相应的屏幕边缘显示一个小的指示器,提示用户抽屉的存在。你可以通过`DrawerLayout`的属性如`drawerIndicatorEnabled`来控制这个指示器。 5. **Fragment切换**: - 抽屉中的选项通常...

    Winform抽屉式菜单.zip

    在Windows Forms(Winform)开发中,抽屉式菜单是一种常见的界面设计模式,它借鉴了移动应用中的设计概念,提供了一种节省空间、交互性强的菜单展现方式。抽屉式菜单通常隐藏在屏幕边缘,当用户触发特定操作时,如...

    DrawerLayout不关闭抽屉并可以触发此处view,抽屉侧滑可响应关闭

    在这个场景中,我们关注的是如何在不关闭抽屉的情况下,让用户能够点击阴影部分并触发相关的视图(View),同时还能通过侧滑来关闭抽屉。 首先,DrawerLayout的工作原理是通过监听滑动手势,来展示或隐藏附加的...

    Android 双向抽屉式侧滑菜单 自定义控件

    在Android应用开发中,抽屉式侧滑菜单(DrawerLayout)是常见的导航设计模式,它允许用户从屏幕边缘滑动以展示一个隐藏的菜单。在本案例中,我们讨论的是一个特殊的实现,即"双向抽屉式侧滑菜单",这使得应用可以从...

    android 左右侧滑抽屉菜单demo

    在Android应用开发中,抽屉菜单(Drawer Layout)是一种常见的设计模式,用于实现从屏幕边缘滑动出的导航菜单。这种设计通常用于大型应用程序,提供一个简洁的方式展示多个层级的导航选项。标题“android 左右侧滑...

Global site tag (gtag.js) - Google Analytics