美文网首页
Android动态添加View

Android动态添加View

作者: duyi324 | 来源:发表于2019-04-10 14:18 被阅读0次

这里以创建一个ImageView为例


1. 首先创建对象

ImageView newImg = new ImageView(getContext());

2. 设置对应的属性

//设置想要的图片,相当于android:src="@drawable/image"
newImg.setImageResource(R.drawable.image);
newImg.setScaleType(ImageView.ScaleType.FIT_CENTER);

3. 创建布局参数

设置子控件在父容器中的位置布局,wrap_content,match_parent

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
    ViewGroup.LayoutParams.MATCH_PARENT,
    ViewGroup.LayoutParams.WRAP_CONTENT);

也可以设置自己想要的宽度,参数(int width, int height)均表示px
如果是dp单位,需要先获取屏幕的分辨率再求出密度
根据屏幕ppi=160时,1px=1dp
则公式为 dp * ppi / 160 = px ——> dp * dendity = px
如设置为48dp:1、获取屏幕的分辨率 2、求出density 3、设置

DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
float density = displayMetrics.density;
LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(
    (int) (48 * density),
    (int) (48 * density));

4. 设置其他参数

以下代码相当于android:layout_marginLeft="8dp"

params.leftMargin = 8;
params.bottomMargin = 10;

5. 添加布局

  • addView(View child),默认往已有的view后面添加,后插入,如果不设置布局params默认为wrap_content
mLayoutContainer.addView(newImg);
  • addView(View child, LayoutParams params),往已有的view后面添加,后插入,并设置布局
mLayoutContainer.addView(newImg, params1);
  • addView(View view, int index, LayoutParams params),在某个index处插入
mLayoutContainer.addView(newImg, 0, params1);

相关文章

  • Android动态添加view

    由于项目需求菜单写活,效果如下: 由于不是可滑动控件,我用的百分比布局做的适配 item_first_type代码...

  • Android动态添加View

    这里以创建一个ImageView为例 1. 首先创建对象 2. 设置对应的属性 3. 创建布局参数 设置子控件在父...

  • Android View.setId(int id) 用法

    Android View.setId(int id) 用法 当要在代码中动态的添加View并且为其设置id时,如果...

  • Learn Flutter Based on Android

    在Android中,addChild和removeChild动态添加或删除View。 在Flutter中,因为wi...

  • Id

    Android View.setId(int id) 的用法 当要在代码中动态的添加View并且为其设置id时,如...

  • Android中动态添加View

    一、使用xml的方式: 1、LayoutInflater: 这个类可以把xml表述的Layout解析为View,从...

  • Android addview—动态添加view

    一、前言 在日常的开发中经常遇到需要动态添加子view的情况,addview是ViewGroup的特有方法,可以在...

  • Android ViewGroup动态添加子View,子View

    前言:自定义ViewGroup做流式布局(简化鸿洋大神的),虽然github上已经有许多现有的控件提供使用,但是还...

  • 动态添加view

    1.解决在次动态添加view后,已添加view位置变动 http://www.programgo.com/arti...

  • 自定义View-LetterView

    1、效果图 2、总体分析 2.1、动态添加View实现   通过在代码中动态添加View的方式,虽然能够实现,但是...

网友评论

      本文标题:Android动态添加View

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