将图像从Webview获取到ImageView

时间:2016-03-07 14:52:08

标签: java android webview

我有自定义//Initialize flag <?php ... $multi_prog_change_flag = '0'; ... ?> //Hidden Form Element <form action="update_u.php" method="post" id="cForm" name="cForm" onsubmit="return validateForm()" autocomplete="off"> ... <?php echo '<input type="hidden" id="email" value="'.$email.'"> ';?> <?php echo '<input type="hidden" id="multiprogchangeflag" name="multiprogchangeflag" value="'.$multi_prog_change_flag.'"> ';?> ... // Drop-down Element where update is triggered <tr id="odd"> <td><select id="programName" name="programName[]" onchange="updateflag();>" multiple="multiple" size=10> .. <option name="drop1" value ="<?php echo $data['Program_Id'] ?>" <?php if ($data[curr_prog] == '1') echo 'selected="selected"'; ?>> <?php echo $data['Program_Name'];?></option> .. </select> <input type="hidden" id="pNames" name="pNames" value="" /> </td> </tr> // Function to update flag function updateflag() { <document.getElementById("multiprogchangeflag").value = "1"; } // update_u.php PHP Action File $multi_prog_flag=mysql_real_escape_string($_POST['multiprogchangeflag']); if ($multi_prog_flag == '1'){ $multi_prog_delete_query=mysql_query("UPDATE multi_prog_access SET is_act = '0', Updated_by = '$updatedby', update_timestamp = NOW() WHERE user_id = '$useid'"); $count = count($multi_prog_names); for($i=0;$i<$count;$i++){ $multi_prog_ID=$multi_prog_names[$i]; $multi_prog_update_query=mysql_query("INSERT INTO multi_prog_access (user_id, Prog_id, created_by, is_act, Update_timestamp) VALUES ('$ids','$multi_prog_ID', '$updatedby', '1', NOW())"); } } 。在里面,我有一张图片。 WebView是可缩放的。我想在单击按钮时重置缩放,从那里提取图像并放在WebView内。

到目前为止,在x-code的帮助下,我设法在ImageView中写了这个:

onClickListener

while (wv2.zoomOut()){ wv2.setDrawingCacheEnabled(true); bitmap = Bitmap.createBitmap(wv2.getDrawingCache()); bitmapPath = bitmap; wv2.setDrawingCacheEnabled(false); new Thread(new Runnable() { public void run() { SaveImage(bitmap); } }).start(); tstImage.setImageBitmap(bitmap); } 完全缩小,但我WebView Bitmap稍微放大了。我需要再点击一次才能获得整个ImageView bitmap

1 个答案:

答案 0 :(得分:0)

我会说WebView.getDrawingCache()方法的Javadoc解释了你的问题。

  

public Bitmap getDrawingCache (boolean autoScale)

     

...

     

关于兼容模式下自动缩放的注意事项:自动缩放时   如果未启用,此方法将创建与此大小相同的位图   图即可。因为此位图将由父级缩放   ViewGroup,屏幕上的结果可能会显示缩放工件要避免   这样的工件,你应该通过设置auto来调用这个方法   缩放为真。但是,这样做会生成a的位图   不同于视图的大小。这意味着您的申请必须   能够处理这个大小。

在您的代码中,您只需进行此更改

bitmap = Bitmap.createBitmap(wv2.getDrawingCache(true));