/** * */ package com.hit.changyou; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Locale; import net.youmi.android.AdManager; import net.youmi.android.offers.OffersAdSize; import net.youmi.android.offers.OffersBanner; import net.youmi.android.offers.OffersManager; import net.youmi.android.offers.PointsChangeNotify; import net.youmi.android.offers.PointsManager; import com.renren.api.connect.android.Renren; import com.renren.api.connect.android.exception.RenrenAuthError; import com.renren.api.connect.android.view.RenrenAuthListener; import android.R.string; import android.app.Activity; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Bitmap.CompressFormat; import android.graphics.Bitmap.Config; import android.graphics.PorterDuff.Mode; import android.os.Bundle; import android.os.Environment; import android.os.Handler; import android.util.Log; import android.view.KeyEvent; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.Button; import android.widget.GridView; import android.widget.RelativeLayout; import android.widget.SimpleAdapter; import android.widget.TextView; import android.widget.Toast; import com.baidu.sharesdk.BaiduShareException; import com.baidu.sharesdk.BaiduSocialShare; import com.baidu.sharesdk.ShareContent; import com.baidu.sharesdk.ShareListener; import com.baidu.sharesdk.Utility; import com.baidu.sharesdk.ui.BaiduSocialShareUserInterface; /** * 更多Activity * * @author 飞雪无情 * @since 2011-3-8 */ public class M_MoreActivity extends Activity implements PointsChangeNotify { int[] imgId = {}; int[] msgIds_title = { R.string.more_inf_title1, R.string.more_inf_title2, R.string.more_inf_title3, R.string.more_inf_title4, R.string.more_inf_title5, R.string.more_inf_title6, R.string.more_inf_title7, R.string.more_inf_title8, R.string.more_inf_title9 }; int[] msgIds_img = { R.drawable.more_ifo_img1, R.drawable.more_ifo_img2, R.drawable.more_ifo_img3, R.drawable.more_ifo_img4, R.drawable.more_ifo_img5, R.drawable.more_ifo_img6, R.drawable.more_ifo_img7, R.drawable.more_ifo_img8, R.drawable.more_ifo_img9 }; List<String> title_ifoList = new ArrayList<String>(); // 你的应用ID private static final String APP_ID = "234153"; // 应用的API Key private static final String API_KEY = "d3842f13ed9246a6aa56160abbeb7c4c"; // 应用的Secret Key private static final String SECRET_KEY = "149594f01c2242c5af99230a7e9aacc9"; final String appid = "d27d2f60b54a7bfe"; final String appkey = "e181c0ead8cad5b7"; private final static String ApiKey = BaiduSocialShareConfig.mbApiKey; private Renren renren; private Handler handler; MyRenren myRenren; OffersBanner mBanner; protected void dialog() { AlertDialog.Builder builder = new Builder(M_MoreActivity.this); builder.setMessage("确定要退出吗?"); builder.setTitle("提示"); builder.setPositiveButton("确认", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); M_MoreActivity.this.finish(); } }); builder.setNegativeButton("取消", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.create().show(); } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { dialog(); return false; } return false; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.m_more); GridView gridview = (GridView) findViewById(R.id.gridview); myRenren = (MyRenren)getApplication(); renren = ((MyRenren) getApplication()).getRenren(); AdManager.getInstance(this).init(appid, appkey, true); // 如果使用积分广告,请务必调用积分广告的初始化接口: OffersManager.getInstance(this).onAppLaunch(); PointsManager.getInstance(this).registerNotify(this); // 生成数据源 一个List ArrayList<HashMap<String, Object>> DateList = new ArrayList<HashMap<String, Object>>(); for (int i = 0; i < 9; i++) { // 医用HashMap来存储 HashMap<String, Object> hashMap = new HashMap<String, Object>(); // 添加图像资源的ID hashMap.put("Image", msgIds_img[i]); // 按序号做ItemText hashMap.put("Text", getResources().getText(msgIds_title[i])); // 添加到List去 DateList.add(hashMap); } // 生成适配器的simpleAdapter // DateList 数据源 // R.layout.item 来自于item。xml 控制GridView中每一项的布局(一个ImageView 一个TextView) // 第三个参数是hashoMap的键值 // 第四个参数是item。xml中ImageView,TextView的ID SimpleAdapter simpleAdapter = new SimpleAdapter(this, DateList, R.layout.gride_item, new String[] { "Image", "Text" }, new int[] { R.id.ItemImage, R.id.ItemText }); // 添加并且显示 gridview.setAdapter(simpleAdapter); // 添加消息处理 gridview.setOnItemClickListener(new ItemClickListener()); mBanner = new OffersBanner(this, OffersAdSize.SIZE_MATCH_SCREENx60); RelativeLayout layoutOffersBanner = (RelativeLayout) findViewById(R.id.offersBannerLayout); layoutOffersBanner.addView(mBanner); } // 初始化按钮和Renren实例 private void initRenren() { renren = new Renren(API_KEY, SECRET_KEY, APP_ID, M_MoreActivity.this); handler = new Handler(); // loginBtn = (Button) findViewById(R.id.loginBtn); // logoutBtn = (Button) findViewById(R.id.logoutBtn); // loginText = (TextView) findViewById(R.id.loginText); // btnCamera = (Button) findViewById(R.id.btncamera); // showLoginBtn(true); } private class ItemClickListener implements OnItemClickListener { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // arg0就是那个DateList HashMap<String, Object> item = (HashMap<String, Object>) arg0 .getItemAtPosition(arg2); // 显示应用标题的那个TextView String titleString = (String) item.get("Text"); setTitle(titleString); if (titleString.equals("人人登陆")) { initRenren(); final RenrenAuthListener listener = new RenrenAuthListener() { // 登录成功 public void onComplete(Bundle values) { // showLoginBtn(false); // loginText.setText(R.string.auth_success); handler.post(new Runnable() { @Override public void run() { MyRenren myrenren = (MyRenren) getApplication(); // ����Զ����Ӧ�ó���MyApp myrenren.setRenren(renren); Toast.makeText( M_MoreActivity.this, M_MoreActivity.this .getString(R.string.auth_success), Toast.LENGTH_SHORT).show(); Intent intent = new Intent(); intent.setClass(M_MoreActivity.this, PersonalActivity.class); startActivity(intent); } }); } // 登录失败 @Override public void onRenrenAuthError(RenrenAuthError renrenAuthError) { // loginText.setText(R.string.auth_failed); handler.post(new Runnable() { @Override public void run() { Toast.makeText( M_MoreActivity.this, M_MoreActivity.this .getString(R.string.auth_failed), Toast.LENGTH_SHORT).show(); } }); } @Override public void onCancelLogin() { } @Override public void onCancelAuth(Bundle values) { } }; startSharing(); renren.authorize(M_MoreActivity.this, listener); } else if (titleString.equals("登陆")) { Intent intent =new Intent(); intent.setClass(M_MoreActivity.this, LoginActivity_1.class); startActivity(intent); } else if (titleString.equals("个人信息")) { Intent intent =new Intent(); // intent.setClass(M_MoreActivity.this, PersonalActivity.class); intent.setClass(M_MoreActivity.this, PersonalActivity.class); startActivity(intent); } else if (titleString.equals("畅游推荐")) { OffersManager.getInstance(M_MoreActivity.this).showOffersWallDialog(M_MoreActivity.this); } else if (titleString.equals("自动分享")) { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.logo); //create a file to write bitmap data SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd_HH-mm-ss", Locale.US); File file =new File(getApplicationContext().getCacheDir(), sdf.format(new Date()) + ".png"); try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.i("yxy", "1"); //Convert bitmap to byte array ByteArrayOutputStream bos = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.PNG, 0 /*ignored for PNG*/, bos); byte[] bitmapdata = bos.toByteArray(); //write the bytes in file FileOutputStream fos; try { fos = new FileOutputStream(file); fos.write(bitmapdata); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // startSharing(); renren.publishPhoto(M_MoreActivity.this, file, "我正在使用畅游-室内导航专家,大家快来加入我吧!"); } } } public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = pixels; paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; } @Override public void onPointBalanceChange(int arg0) { // TODO Auto-generated method stub Toast.makeText(M_MoreActivity.this, "游米余额:"+arg0, Toast.LENGTH_SHORT).show(); } private void startSharing(){ // create baidu social share instance BaiduSocialShare bss = BaiduSocialShare.getInstance(this, ApiKey); // create content to share ShareContent content = new ShareContent(); content.setTitle("畅游一键分享"); content.setContent("精彩畅游,舒心生活.我正在使用畅游-室内导航专家,大家快来加入我吧!"); // content.setUrl("http://www.baidu.com"); // create the user interface BaiduSocialShareUserInterface bssui = bss.getSocialShareUserInterfaceInstance(); // start to share bssui.showShareMenu(this, content, Utility.SHARE_THEME_STYLE, new ShareListener(){ @Override public void onApiComplete(String arg0) { Toast.makeText(M_MoreActivity.this, "on api complete " + arg0, 1000).show(); } @Override public void onAuthComplete(Bundle arg0) { Toast.makeText(M_MoreActivity.this, "on auth complete", 1000).show(); } @Override public void onError(BaiduShareException arg0) { Toast.makeText(M_MoreActivity.this, "on error", 1000).show(); } }); } }