私の最初のアクティビティには、ボタンと Web ビューがあり、ボタンをクリックすると、Web ビューのコンテンツを含む新しいアクティビティがイメージビューで開きます。(webview をビットマップに変換し、このビットマップで imageview を設定します)。
問題は、ボタンを初めてクリックしたときに何も起こらず、画面が白いままになることです。しかし、最初のアクティビティに戻ってボタンを再クリックすると、イメージビューが適切に表示されます。
最初にイメージビューが表示されなかったのはなぜですか? 2 番目のアクティビティや Imageview を更新する必要はありますか?
WebViewActivity.java
public class WebViewActivity extends Activity {
private WebView webView;
ImageView imageView;
Button button;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView) findViewById(R.id.webView1);
webView.getSettings().setJavaScriptEnabled(true);
String customHtml = "<BODY BACKGROUND=\"pic_10.jpg\"><BODY><div style=\"position: absolute; bottom: 0; width: 100%\"><div style=\"padding:24px 0 0;margin:0;height:40px;background:transparent;position:relative;\"><a href=\"http://www.amazon.com\" style=\"padding:0 140px 0 0;margin:0;height:40px;display:block;text-decoration:none;overflow:hidden;background:#fff;\" target=\"_blank\"><span style=\"padding:0 0 0 40px;margin:0;display:block;overflow:hidden;background:transparent url(http://ads.gumgum.com/com/gumgum/tests/amazon.png) no-repeat scroll left center;\"><p style=\"padding:0;margin:0;font:bold 12px/16px Arial;color:#000;text-decoration:underline;display:block;height:16px;overflow:hidden;text-align:left;padding:2px 0;word-wrap:break-word;\">HBase Administration Cookbook</p><p style=\"padding:0;margin:0;font:italic 12px/16px Arial;color:#c60;text-decoration:none;display:block;height:16px;overflow:hidden;text-align:left;word-wrap:break-word;\">www.amazon.com</p></span><span style=\"position:absolute;bottom:0;right:70px;overflow:hidden;\"><img src=\"http://ecx.images-amazon.com/images/I/41OEZDHmUoL._SL75_.jpg\" style=\"border:none;max-width:64px;*width:64px;height:64px;\"></span></a></div></div>";
webView.loadDataWithBaseURL("file:///android_asset/", customHtml , "text/html", "utf-8", null);
button = (Button) findViewById(R.id.btnChangeImage);
}
public void sendMessage(View view) {
webView.setWillNotCacheDrawing(false);
webView.destroyDrawingCache();
webView.setDrawingCacheEnabled(true);
webView.measure(MeasureSpec.makeMeasureSpec(480, MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(800, MeasureSpec.EXACTLY));
webView.layout(0, 0, webView.getMeasuredWidth(), webView.getMeasuredHeight());
webView.buildDrawingCache(true);
Bitmap bmap = Bitmap.createBitmap(webView.getDrawingCache());
webView.destroyDrawingCache();
//imageView.setMaxHeight(55);
//imageView.setMaxWidth(20);
Bitmap bmap_New = scaleDownBitmap(bmap,400,this);
Intent intent = new Intent(this, ImageViewActivity.class);
intent.putExtra("BitmapImage", bmap_New);
startActivity(intent);
}
public static Bitmap scaleDownBitmap(Bitmap photo, int newHeight, Context context) {
final float densityMultiplier = context.getResources().getDisplayMetrics().density;
int h= (int) (newHeight*densityMultiplier);
int w= (int) (h * photo.getWidth()/((double) photo.getHeight()));
photo=Bitmap.createScaledBitmap(photo, w, h, true);
return photo;
}
ImageViewActivity.java
public class ImageViewActivity extends Activity {
ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_view);
imageView = (ImageView) findViewById(R.id.imageView1);
Intent intent = getIntent();
Bitmap bmp = (Bitmap)intent.getParcelableExtra("BitmapImage");
imageView.setImageBitmap(bmp);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_image_view, menu);
return true;
}
}
リンクされているかどうかはわかりませんが、アプリケーションを起動すると、カタログに次のように表示されます:
E/chromium(32671): external/chromium/net/disk_cache/stat_hub.cc:190: [1214/103321:ERROR:stat_hub.cc(190)] StatHub::Init - App com.example.androidtestadserver isn't supported.