小编Raí*_*ini的帖子

IllegalArgumentException:从View加载Bitmap时,width和height必须> 0

我正在尝试使用ImageViewTouch,这是一个可以进行缩放缩放的库.我可以使用Canvas绘制图像,但是当我缩放图像时,绘图会消失.

为此,我正在尝试将视图转换为位图并为同一视图设置ImageBitmap.这是代码:

mImage.setDrawPath(true);
mImage.setImageBitmap(loadBitmapFromView(mImage)); 

public static Bitmap loadBitmapFromView(View v) {
        Bitmap b = Bitmap.createBitmap( v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);                
        Canvas c = new Canvas(b);
        v.layout(0, 0, v.getWidth(), v.getHeight());
        v.draw(c);
        return b;
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到以下日志错误:

07-11 21:13:41.567: E/AndroidRuntime(20056): java.lang.IllegalArgumentException: width and height must be > 0
07-11 21:13:41.567: E/AndroidRuntime(20056):    at android.graphics.Bitmap.createBitmap(Bitmap.java:638)
07-11 21:13:41.567: E/AndroidRuntime(20056):    at android.graphics.Bitmap.createBitmap(Bitmap.java:620)
Run Code Online (Sandbox Code Playgroud)

如果我删除了loadBitmapFromView呼叫,则图形通常会出现在图像上方.当我尝试与图像进行任何交互(如放大或缩小)时,绘图消失,仅保留背景图像,即图片.

---编辑---

这是在loadBitmapFromView通话后放置的更多代码.案例是:我有一个无线电组听众,当我检查一些单选按钮时,我必须加载图像并在其上绘制一些可能的图纸..然后我试图将所有内容(图像和图纸)转换为仅一个位图.

这是代码的一部分:

bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)

之后,我绘制了我必须绘制的所有内容,并尝试使用我展示的loadImageBitmap方法将视图转换为位图.

decodeSampledBitmapFromResource我从Android开发人员的这个链接获得的方法http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

java canvas view bitmap imageview

27
推荐指数
3
解决办法
4万
查看次数

将JavaMail与自签名证书一起使用

我有一个包含以下代码的servlet:

System.setProperty("javax.net.ssl.keyStore", getServletContext().getRealPath("keystore.jks"));
System.setProperty("javax.net.ssl.keyStorePassword", "123456");
System.setProperty("javax.net.ssl.trustStore",getServletContext().getRealPath("keystore.jks"));
System.setProperty("javax.net.ssl.trustStorePassword","123456");

SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("127.0.0.1", 606);
Run Code Online (Sandbox Code Playgroud)

使用此代码,我可以使用SSL(我的情况是强制性的).稍后在同一个servlet中,我需要使用JavaMail发送电子邮件.当我尝试在不使用其他代码中的证书的情况下发送此电子邮件时,它工作正常,但是当我尝试使用它时,会返回以下消息:使用端口465 - >

DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 465, isSSL false
Run Code Online (Sandbox Code Playgroud)

Aaand被困在这个= p.

使用端口587 - >

DEBUG: setDebug: JavaMail version 1.4.7
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG …
Run Code Online (Sandbox Code Playgroud)

java ssl servlets jakarta-mail self-signed

3
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×2

bitmap ×1

canvas ×1

imageview ×1

jakarta-mail ×1

self-signed ×1

servlets ×1

ssl ×1

view ×1