您的位置:首页 > 其它

动态加载View布局实现drawableLeft,drawableRight

2015-09-02 10:23 260 查看
父布局
<LinearLayout
                android:id="@+id/layout_all_chart"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/ll_callon_num"
                android:layout_marginTop="24dp"
                android:gravity="center"
                android:minHeight="120dp"
                android:orientation="horizontal" >

                <LinearLayout
                    android:id="@+id/layout1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="14dp"
                    android:layout_marginRight="5dp"
                    android:layout_weight="1"
                    android:orientation="vertical" >
                </LinearLayout>

                <LinearLayout
                    android:id="@+id/layout2"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center_vertical"
                    android:layout_marginLeft="5dp"
                    android:layout_weight="1"
                    android:orientation="vertical" >
                </LinearLayout>
            </LinearLayout>


子布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="1dp"
    android:orientation="horizontal" >
    
    <ImageView 
        android:id="@+id/img_chart"
        android:layout_width="9dp"
        android:layout_height="9dp"
        android:layout_gravity="center_vertical"
        android:background="@color/static_color1"/>
    
    <TextView 
        android:id="@+id/tv_value"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="2dp"
        android:layout_gravity="center_vertical"
        android:textColor="#838a99"
        android:textSize="14sp"/>
    
    <TextView 
        android:id="@+id/tv_num"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="1dp"
        android:layout_gravity="center_vertical"
        android:textColor="#747881"
        android:textSize="17sp"/>

</LinearLayout>


代码块

动态添加的View中所要的颜色数组;

private int drawableLeftImg[] = { R.color.static_color1,
			R.color.static_color2, R.color.static_color3,
			R.color.static_color4, R.color.static_color5,
			R.color.static_color6, R.color.static_color7,
			R.color.static_color8, R.color.static_color9,
			R.color.static_color10 };
<pre name="code" class="java">
<pre name="code" class="java">LinearLayout mLayout1 = (LinearLayout)findViewById(R.id.layout1);




LinearLayout mLayout2 = (LinearLayout)findViewById(R.id.layout2);


</pre>customers是从服务器上获取的JSONArray;<pre name="code" class="java">               for (int i = 0; i < customers.length(); i++) {
			try {
				JSONObject customer = (JSONObject) (customers.get(i));
				LinearLayout layout = new LinearLayout(context);
				View.inflate(context, R.layout.item_chart, layout);
				ImageView img = (ImageView) layout
						.findViewById(R.id.img_static_chart);
				img.setBackgroundResource(<span style="font-family: Arial, Helvetica, sans-serif;">drawableLeftImg[]</span><span style="font-family: Arial, Helvetica, sans-serif;">[i]);</span>
				
				TextView tv = (TextView) layout
						.findViewById(R.id.tv_statistc_value);
				TextView num = (TextView) layout.findViewById(R.id.tv_statistc_num);
				tv.setText(customer.optString("value"));
				num.setText(customer.optInt("count") + "");
				LayoutParams params = new LayoutParams(
						LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
				//取模,让布局分开左右两边排列
				int index = i % 2;
				if (index == 0) {
					mLayout1.addView(ll, params);
				} else {
					mLayout2.addView(ll, params);
				}
			} catch (JSONException e) {
				e.printStackTrace();
			}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: