1. 程式人生 > >垂直、水平滾動的TextView

垂直、水平滾動的TextView

原始碼來自於:https://github.com/Glgo/AutoVerticalScrollTextView

 public View makeView() {
        TextView textView = new TextView(mContext);
        textView.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
        textView.setTextSize(14);
        textView.setSingleLine(true);
        textView.setGravity(Gravity.CENTER_VERTICAL);
        textView.setEllipsize(TextUtils.TruncateAt.END);
        textView.setTextColor(getResources().getColor(R.color.mainbbscolor));
        return textView;

    }

其中這個方法就是對TextView進行設定,做出自己想要的效果。下面是直接使用方法:

  /**
     * 首頁廣告
     */
    private void initAD(){
        //上層滾動
        verticalUpScrollTV = (AutoVerticalScrollTextView)inflate.findViewById(R.id.textview_auto_roll_up);
        verticalUpScrollTV.setText(testAD.get(0));

        //滾動廣告點選事件
        verticalUpScrollTV.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(getActivity(), testAD.get(upNumber % testAD.size()), Toast.LENGTH_SHORT).show();
            }
        });

        new Thread(){
            @Override
            public void run() {
                while (isRunning){
                    SystemClock.sleep(5000);
                    handler.sendEmptyMessage(199);
                }
            }
        }.start();
    }

    /**
     * 執行緒
     */
    private Handler handler = new Handler() {

        public void handleMessage(Message msg) {
            if (msg.what == 199) {
                verticalUpScrollTV.next();
                upNumber++;
                verticalUpScrollTV.setText(testAD.get(upNumber%testAD.size()));
            }
        }
    };

    @Override
    public void onDestroy() {
        super.onDestroy();
        //關閉介面時關閉廣告輪播執行緒
        isRunning=false;
    }
其中開了一個執行緒,記得關閉。