public class SingleWeatherInfoView extends LinearLayout{
private ImageView myWeatherImageView = null;
private TextView myTempTextView = null;
public SingleWeatherInfoView(Context context){
super(context);
}
public SingleWeatherInfoView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
this.myWeatherImageView = new ImageView(context);
this.myWeatherImageView.setPadding(10, 5, 5, 5);
this.myTempTextView = new TextView(context);
this.myTempTextView.setTextColor(R.color.black);
this.myTempTextView.setTextSize(16);
this.addView(this.myWeatherImageView, new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
this.addView(this.myTempTextView, new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
}
//activity中需要给它增加图标和名字的时候需要
public void setWeatherString(String aWeatherString) {
this.myTempTextView.setText(aWeatherString);
}
//activity中需要给它增加图标和名字的时候需要
public void setWeatherIcon(URL aURL) {
try{
URLConnection conn = aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bm = BitmapFactory.decodeStream(bis);
bis.close();
is.close();
this.myWeatherImageView.setImageBitmap(bm);
}catch(Exception e){
}
}
}
然后在AndroidManifest.xml中去使用
<TableLayout android:id="@+id/TableLayout01"
android:layout_width="fill_parent" android:layout_height="wrap_content">
<TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<cn.Wongxming.weather.views.SingleWeatherInfoView
android:id="@+id/weather_0" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow android:id="@+id/TableRow03" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<cn.Wongxming.weather.views.SingleWeatherInfoView
android:id="@+id/weather_1" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<cn.Wongxming.weather.views.SingleWeatherInfoView
android:id="@+id/weather_2" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<cn.Wongxming.weather.views.SingleWeatherInfoView
android:id="@+id/weather_3" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
<TableRow android:id="@+id/TableRow06" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<cn.Wongxming.weather.views.SingleWeatherInfoView
android:id="@+id/weather_4" android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</TableRow>
</TableLayout>
然后再activity中需要给它增加图标和名字的时候需要
((SingleWeatherInfoView) findViewById(aResourceID)).setWeatherIcon(imgURL);
((SingleWeatherInfoView) findViewById(aResourceID)).setWeatherString(aWCC.toString());