Android 之Java动态生成View
16lz
2021-01-23
LayoutInflate & LayoutParams (tip)
一、LayoutInflate
除过setContentView()用于Activity加载布局,就要使用LayoutInflate
ViewGroup viewGroup = (ViewGroup) LayoutInflater.from(this).inflate(R.layout.activity_main, null);
详解:Android 通过Java代码生成创建界面。动态生成View,动态设置View属性。addRules详解
二、LayoutParams
详解:Android中LayoutParams总结和用法
RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(100,100); RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
注:单位是px
public class MainActivity extends Activity implements View.OnClickListener{ private static final String TAG = "MainActivity"; private LinearLayout ll_one; private HashMap btnMap = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnMap = new HashMap(); ll_one = findViewById(R.id.ll_one); for (Integer i = 0; i < 6; i++) { Button button1 = new Button(ll_one.getContext()); button1.setText("button"+i); button1.setTag(i); button1.setTextColor(Color.GREEN); button1.setOnClickListener(this); LinearLayout.LayoutParams btnParams = new LinearLayout.LayoutParams(300, 120); button1.setLayoutParams(btnParams); ll_one.addView(button1); btnMap.put(i,button1); } } @Override public void onClick(View view) { Log.d(TAG, "onClick: "+view.getTag()); Button button = btnMap.get((Integer) view.getTag()); button.setBackgroundColor(Color.RED); switch ((Integer) view.getTag()){ case 0: Log.d(TAG, "ss onClick: "+view.getTag()); break; case 1: Log.d(TAG, "ss onClick: "+view.getTag()); break; case 2: Log.d(TAG, "ss onClick: "+view.getTag()); break; } }}
更多相关文章
- Android 程序真退出与假退出后台运行详解
- Android 总结:自定义键盘实现原理和三种实例详解
- Android 动态显示和隐藏软键盘
- android 动态设置圆角背景(来自http://www.oschina.net/code/snip
- Android Volley 详解
- 7.1.2 DatePicker结合案例详解