textview+EditText

作者: 喂_balabala | 来源:发表于2017-12-29 14:48 被阅读12次

    TextView

    android:textAlignment="center"
    android:textColorHint="#adadad"
    textAllCaps   在xml布局中把默认的大写改成小写
    mTvMarketPrice.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG);设置中划线
    
    TextView限制文字个数,过多设置省略号
    android:maxEms="12"
    android:ellipsize="end"
    android:maxLines="1"
    
     CBAlignTextView【调整排版】
     AutofitTextView【根据字体长度调整字体大小】
    
    换行
    <TextView
        android:gravity="center_horizontal"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="电话客服\n400-878-6616"/>
    
    textview
    1、android:lineSpacingExtra
    设置行间距,如”3dp”。
    2、android:lineSpacingMultiplier
    设置行间距的倍数,如”1.2″。
    
    API要21以上
    控制字间距用:android:letterSpacing=“”或者setLetterSpacing(float letterSpacing)
    
    mTvDetail.setMovementMethod(ScrollingMovementMethod.getInstance());// 滚动
    

    展示HTML文字和图片

    handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0x101) {
                mTvDetail.setText((CharSequence) msg.obj);
            }
            super.handleMessage(msg);
        }
    };
    private Point mPoint=new Point();
    getWindowManager().getDefaultDisplay().getSize(mPoint);
    // 因为从网上下载图片是耗时操作 所以要开启新线程
    Thread t = new Thread(new Runnable() {
        Message msg = Message.obtain();
        @Override
        public void run() {
            /**
             * 要实现图片的显示需要使用Html.fromHtml的一个重构方法:public static Spanned
             * fromHtml (String source, Html.ImageGetterimageGetter,
             * Html.TagHandler
             * tagHandler)其中Html.ImageGetter是一个接口,我们要实现此接口,在它的getDrawable
             * (String source)方法中返回图片的Drawable对象才可以。
             */
            Html.ImageGetter imageGetter = new Html.ImageGetter() {
                @Override
                public Drawable getDrawable(String source) {
                    URL url;
                    Drawable drawable = null;
                    try {
                        url = new URL("https://www.hzjr.com"+source);
                        drawable = Drawable.createFromStream(
                                url.openStream(), null);
    修改图片大小
                     //   drawable.setBounds(0, 0,
                       //         drawable.getIntrinsicWidth(),
                         //       drawable.getIntrinsicHeight());
    drawable.setBounds(0,0, DensityUtil.dip2px(mContext,drawable.getIntrinsicWidth()) > mPoint.x ? mPoint.x:DensityUtil.dip2px(mContext,drawable.getIntrinsicWidth()),
            DensityUtil.dip2px(mContext,drawable.getIntrinsicHeight()));
                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return drawable;
                }
            };
    Looper.prepare();
            CharSequence test = Html.fromHtml(bean.getDetail(), imageGetter, new URLTagHandler(mContext));
            msg.what = 0x101;
            msg.obj = test;
            handler.sendMessage(msg);
            dialog.dismiss();
        }
    });
    t.start();
    
    public class URLTagHandler implements Html.TagHandler {
    
        private Context mContext;
        private PopupWindow popupWindow;
        //需要放大的图片
        private List<String> mImagesList = new ArrayList<>();
    
        public URLTagHandler(Context context) {
            mContext = context.getApplicationContext();
        }
    
        @Override
        public void handleTag(boolean opening, String tag, Editable output, XMLReader xmlReader) {
            // 处理标签<img>
            if (tag.toLowerCase(Locale.getDefault()).equals("img")) {
                // 获取长度
                int len = output.length();
                // 获取图片地址
                ImageSpan[] images = output.getSpans(len - 1, len, ImageSpan.class);
    //
    
                String imgURL = images[0].getSource();
                mImagesList.add(imgURL);
                // 使图片可点击并监听点击事件
    
                output.setSpan(new ClickableImage(mContext, imgURL), len - 1, len, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
        }
    
        private class ClickableImage extends ClickableSpan {
            private String url;
            private Context context;
    
            public ClickableImage(Context context, String url) {
                this.context = context;
                this.url = url;
            }
    
            @Override
            public void onClick(View widget) {
                // 进行图片点击之后的处理
                Intent intent = new Intent(context, BorrowerImageActivity.class);
                intent.putExtra("URL",url);
                intent.putExtra("IMAGES", ((String[]) mImagesList.toArray(new String[mImagesList.size()])));
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(intent);
    
    
            }
        }
    }
    

    EditText

    设置初始化的时候没有焦点在父标签中增加属性android:focusable="true"
    android:focusableInTouchMode="true"
    
     [Android之设置EditText输入类型(setInputType()方法和android:inputType属性)](http://blog.csdn.net/u013059863/article/details/49914513) 
    
     [隐藏android中EditText的下划线](http://blog.csdn.net/zhuzhiqiang_zhu/article/details/50765728) 
    
    android:background="@null"
    
    EditText密码效果
    
    android:inputType="textPassword"
    
    android:password="true" 已过时
    
    
    将EditText光标移动到最后面
    mEdit.setSelection(mDataList.get(position).length());
    setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);//
    
    可见的密码
    setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_PASSWORD);//不可见的密码
    

    edittext监听

      1. public class MyEditTextChangeListener implements TextWatcher {  
      2.     /** 
      3.      * 编辑框的内容发生改变之前的回调方法 
      4.      */  
      5.     @Override  
      6.     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {  
      7.         LogUtils.showLog("MyEditTextChangeListener", "beforeTextChanged---" + charSequence.toString());  
      8.     }  
      9.   
      10.     /** 
      11.      * 编辑框的内容正在发生改变时的回调方法 >>用户正在输入 
      12.      * 我们可以在这里实时地 通过搜索匹配用户的输入 
      13.      */  
      14.     @Override  
      15.     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {  
      16.         LogUtils.showLog("MyEditTextChangeListener", "onTextChanged---" + charSequence.toString());  
      17.     }  
      18.   
      19.     /** 
      20.      * 编辑框的内容改变以后,用户没有继续输入时 的回调方法 
      21.      */  
      22.     @Override  
      23.     public void afterTextChanged(Editable editable) {  
      24.         LogUtils.showLog("MyEditTextChangeListener", "afterTextChanged---");  
      25.     }  
      26. }  
    //代码中运用  
            et_my_product_search.addTextChangedListener(new MyTextChangedListener()); 
    

    相关文章

      网友评论

        本文标题:textview+EditText

        本文链接:https://www.haomeiwen.com/subject/cciigxtx.html