Android新组件应用

  1. CheckedTextView替代LineaLayout + TextView + ImageView 构造单选项

  2. Chronometer替代RxJava.interval + TextView

  3. StackView类似Android的多任务的布局

  4. QuickContactBadge 图片,点击会自动链接通讯录

  5. Space代替margin,因为onDraw()方法为空,所以不会渲染,包括事件处理都无效

  6. TextClock时间显示

  7. ToggleButton配合android:button="@drawable/sel"可以实现Switch效果

    //去除右下角小三角图标
    quickContactBadge.assignContactFromPhone("13012345678", false)
    val f = quickContactBadge::class.java.getDeclaredField("mOverlay")
    f.isAccessible = true
    f.set(quickContactBadge, null)
    
  8. TextSwitcher替代ViewFlipper实现滚动条效果

    textSwitcher.setFactory {
        val tv = TextView(this@MainActivity)
        tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16.0f)
        tv.setTextColor(Color.RED)
        return@setFactory tv
    }
    textSwitcher.inAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_in);
    textSwitcher.outAnimation = AnimationUtils.loadAnimation(this, R.anim.anim_out);
    Observable.interval(1000L, 3000L, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe {
                textSwitcher.setText((Random().nextInt()).toString())
            }
    

    anim_in:

    
        
    
    

    anim_out:

    
        
    
    
  9. PopupMenu类似QQ的右上角"+"效果

    PopupMenu popupMenu = new PopupMenu(Main8Activity.this, view); //view:PopupMenu绑定的view,一般绑定在触发事件按钮
    popupMenu.getMenuInflater().inflate(R.menu.popup, popupMenu.getMenu()); //添加menu资源 
    // 或者popupMenu.inflate(R.menu.popup);
    popupMenu.setOnMenuItemClickListener(...); //点击事件
    popupMenu.setGravity(Gravity.END); //设置显示的位置
    popupMenu.show();
    

    需要创建一个menu文件

    在res/menu 文件夹下创建一个menu文件,此处menu文件名popup,在inflate方法中引用设置该menu文件

你可能感兴趣的:(笔记)