LeeWidget源代码:
package com.esri.lee;
import java.io.IOException;
import java.io.InputStream;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.util.Log;
//import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RelativeLayout;
import android.widget.Toast;
public class LeeWidgetActivity extends Activity {
public static int state = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLeeWidgetView(this));
}
public View getLeeWidgetView(final Context context) {
LayoutParams layoutParam_fillParent = new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
LayoutParams layoutParam_wrapContent = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
RelativeLayout relativeLayout = new RelativeLayout(context);
relativeLayout.setLayoutParams(layoutParam_fillParent);
LinearLayout imageLinearLayout = new LinearLayout(context);
imageLinearLayout.setLayoutParams(layoutParam_fillParent);
// imageLinearLayout.setGravity(Gravity.CENTER);
ImageView imageEsri = new ImageView(context);
imageEsri.setImageBitmap(getBitmapFromAssets(context,"esri_image.png"));
imageLinearLayout.addView(imageEsri);
relativeLayout.addView(imageLinearLayout);
LinearLayout buttonLinearLayout = new LinearLayout(context);
buttonLinearLayout.setLayoutParams(layoutParam_fillParent);
buttonLinearLayout.setOrientation(LinearLayout.VERTICAL);
Button bnLog = new Button(context);
bnLog.setText("Log");
bnLog.setTextColor(Color.BLACK);
bnLog.setLayoutParams(layoutParam_wrapContent);
bnLog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("LeeWidget", "Just test.");
Toast.makeText(context, "Just test.",
Toast.LENGTH_SHORT).show();
}
});
buttonLinearLayout.addView(bnLog);
Button bnReadState = new Button(context);
bnReadState.setText("Read State");
bnReadState.setTextColor(Color.BLACK);
bnReadState.setLayoutParams(layoutParam_wrapContent);
bnReadState.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d("LeeWidget", "State = " + state);
Toast.makeText(context, "State = " + state,
Toast.LENGTH_SHORT).show();
state++;
}
});
buttonLinearLayout.addView(bnReadState);
relativeLayout.addView(buttonLinearLayout);
return relativeLayout;
}
private Bitmap getBitmapFromAssets(Context context, String fileName) {
AssetManager assetManager = context.getAssets();
InputStream inputStream = null;
Bitmap bitmap = null;
try {
inputStream = assetManager.open(fileName);
bitmap = BitmapFactory.decodeStream(inputStream);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
Log.d("LeeWidget", "get bitmap failed");
return null;
}
return bitmap;
}
}
AlanBuilder源代码:
package com.esri.alan;
import com.esri.lee.LeeWidgetActivity;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
public class BuilderMainActivity extends Activity {
ViewGroup viewGroup;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LayoutInflater inflater = LayoutInflater.from(this);
viewGroup = (ViewGroup) inflater.inflate(R.layout.activity_main,null);
setContentView(viewGroup);
Button bn_test2 = (Button)findViewById(R.id.test2);
bn_test2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LeeWidgetActivity.state = 1000;
startActivity(new Intent(BuilderMainActivity.this, LeeWidgetActivity.class));
}
});
Button bn_test3 = (Button)findViewById(R.id.test3);
bn_test3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LeeWidgetActivity leeWidgetActivity = new LeeWidgetActivity();
LeeWidgetActivity.state = 10000;
viewGroup.addView(leeWidgetActivity.getLeeWidgetView(BuilderMainActivity.this));
setContentView(viewGroup);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}