当前位置:  编程技术>移动开发
本页文章导读:
    ▪工作札记之uiviewcontroller        工作笔记之uiviewcontroller 前段时间碰到个如下的情况uiviewcontroller *a   uiviewcontroller *b  uibutton *c;在a中 [a addsubview:b]; 然后 [b addsubview:c];结果没想到c中的按键动作不能响应了。。结果发现  .........
    ▪ 判断ListView或者是ScrollView滚动究竟部的方法        判断ListView或者是ScrollView滚动到底部的方法。 ListViewOnScrollListener分析ListView.setOnScrollListener(new OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch.........
    ▪ 给图标右下角添加小图标       给图标右上角添加小图标 RelativeLayout.LayoutParams lp=(RelativeLayout.LayoutParams) new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); lp.topMargin=-5; lp.leftMargin=10; lp.width=36; lp.height=36; RelativeLay.........

[1]工作札记之uiviewcontroller
    来源: 互联网  发布时间: 2014-02-18
工作笔记之uiviewcontroller
前段时间碰到个如下的情况

uiviewcontroller *a   uiviewcontroller *b  uibutton *c;

在a中 [a addsubview:b]; 然后 [b addsubview:c];

结果没想到c中的按键动作不能响应了。。

结果发现  在一个controller中添加另外一个controller 一定要主动添加父子关系,即

[a setchildviewController:b];

否则按键消息传递不上去。

    
[2] 判断ListView或者是ScrollView滚动究竟部的方法
    来源: 互联网  发布时间: 2014-02-18
判断ListView或者是ScrollView滚动到底部的方法。
ListView

OnScrollListener分析

ListView.setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
            case OnScrollListener.SCROLL_STATE_IDLE:
                Log.v("已经停止:SCROLL_STATE_IDLE");
                break;
            case OnScrollListener.SCROLL_STATE_FLING:
                Log.v("开始滚动:SCROLL_STATE_FLING");
                break;
            case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
   Log.v("正在滚动:SCROLL_STATE_TOUCH_SCROLL");
                break;
            }
    }
 
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
           int visibleItemCount, int totalItemCount) {
    }
});


// 监听listview滚到最底部
mIndexList.setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
            // 当不滚动时
            case OnScrollListener.SCROLL_STATE_IDLE:
                // 判断滚动到底部
                if (view.getLastVisiblePosition() == (view.getCount() - 1)) {
                    isLastisNext++;
              }
              break;
        }
    }
 
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
           int visibleItemCount, int totalItemCount) {
    }
});



ScrollView 需要覆盖一个新的类LazyScrollView


package com.dodowaterfall;

import android.content.Context;
import android.os.Handler;
import android.os.Message;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.ScrollView;

public class LazyScrollView extends ScrollView {
    @Override
    protected void onScrollChanged(int l, int t, int oldl, int oldt) {
        super.onScrollChanged(l, t, oldl, oldt);
        onScrollListener.onAutoScroll(l, t, oldl, oldt);
    }

    private static final String tag = "LazyScrollView";
    private Handler handler;
    private View view;

    public LazyScrollView(Context context) {
        super(context);

    }

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

    }

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

    }

    // 这个获得总的高度
    public int computeVerticalScrollRange() {
        return super.computeHorizontalScrollRange();
    }

    public int computeVerticalScrollOffset() {
        return super.computeVerticalScrollOffset();
    }

    private void init() {

        this.setOnTouchListener(onTouchListener);
        handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {

                super.handleMessage(msg);
                switch (msg.what) {
                    case 1:
                        if (view.getMeasuredHeight() - 60 <= getScrollY()
                                + getHeight()) {
                            if (onScrollListener != null) {
                                onScrollListener.onBottom();
                            }

                        } else if (getScrollY() == 0) {
                            if (onScrollListener != null) {
                                onScrollListener.onTop();
                            }
                        } else {
                            if (onScrollListener != null) {
                                onScrollListener.onScroll();
                            }
                        }
                        break;
                    default:
                        break;
                }
            }
        };

    }

    OnTouchListener onTouchListener = new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:
                    break;
                case MotionEvent.ACTION_UP:
                    if (view != null && onScrollListener != null) {
                        handler.sendMessageDelayed(handler.obtainMessage(1), 200);
                    }
                    break;
                default:
                    break;
            }
            return false;
        }

    };

    /**
     * 获得参考的View,主要是为了获得它的MeasuredHeight,然后和滚动条的ScrollY+getHeight作比较。
     */
    public void getView() {
        this.view = getChildAt(0);
        if (view != null) {
            init();
        }
    }

    /**
     * 定义接口
     *
     * @author admin
     */
    public interface OnScrollListener {
        void onBottom();

        void onTop();

        void onScroll();

        void onAutoScroll(int l, int t, int oldl, int oldt);
    }

    private OnScrollListener onScrollListener;

    public void setOnScrollListener(OnScrollListener onScrollListener) {
        this.onScrollListener = onScrollListener;
    }
}


 
      waterfall_scroll.setOnScrollListener(new LazyScrollView.OnScrollListener() {

            @Override
            public void onTop() {
                // 滚动到最顶端
                Log.d("LazyScroll", "Scroll to top");
            }

            @Override
            public void onScroll() {
                if (menu_block.getVisibility() == View.VISIBLE) {
                    menu_block.setVisibility(View.GONE);
                }
            }

            @Override
            public void onBottom() {
                // 滚动到最低端
                // AddItemToContainer(++current_page, page_count);
            }

            @Override
            public void onAutoScroll(int l, int t, int oldl, int oldt) {

                Log.d("MainActivity",
                        String.format("%d  %d  %d  %d", l, t, oldl, oldt));

                // Log.d("MainActivity", "range:" + range);
                // Log.d("MainActivity", "range-t:" + (range - t));
                int scrollHeight = t;
                scroll_height = waterfall_scroll.getMeasuredHeight();
                Log.d("MainActivity", "scroll_height:" + scroll_height);

                int longHeight = waterfall_scroll.getChildAt(0).getMeasuredHeight();
                Log.d("MainActivity", "height:" + longHeight);

                // 当滚到底部时  马上加载
                if (scrollHeight + scroll_height >= longHeight - 40) {
                    if (!isFetchingNow && !noMoreProducts) {
                        new FetchAsyncTask(false).execute();
                        bottom_bar.setVisibility(View.VISIBLE);
                    }
                }
          }
     }

    
[3] 给图标右下角添加小图标
    来源: 互联网  发布时间: 2014-02-18
给图标右上角添加小图标

RelativeLayout.LayoutParams lp=(RelativeLayout.LayoutParams) new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.topMargin=-5;
lp.leftMargin=10;
lp.width=36;
lp.height=36;
RelativeLayout srcimg= (RelativeLayout) findViewById(R.id.relativeLayout1);//里面包含了一个图片

自适应显示
ImageView delimg=null;
delimg.setBackgroundResource(R.drawable.close);
// srcimg.addview(delimg,lp);
srcimg.addView(delimg, lp);

 

 

<RelativeLayout android:layout_width="wrap_content"
android:id="@+id/relativeLayout1" android:layout_height="wrap_content">
<ImageView android:layout_width="wrap_content"
android:id="@+id/imageView1" android:layout_height="wrap_content"
android:src="/blog_article/@drawable/icon/index.html"></ImageView>
</RelativeLayout>


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
c/c++开源软件 iis7站长之家
▪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