小编rek*_*t0x的帖子

Android Image Dialog/Popup与图像大小相同,没有边框

目前我正在使用文件浏览器.一切正常,只有一个例外:如果用户点击图像(jpg,png,bmp,..),我希望图像显示在对话框或弹出窗口中,其大小与图像相同 - 这样根本没有边界.图像文件位于SD卡上.

这是我到目前为止:

BitmapDrawable bitmap = new BitmapDrawable(context.getResources(), TARGET_PATH);

AlertDialog.Builder imageDialog = new AlertDialog.Builder(context);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View layout = inflater.inflate(R.layout.thumbnail, null);
ImageView image = (ImageView) layout.findViewById(R.id.thumbnail_IMAGEVIEW);
image.setImageDrawable(bitmap);
imageDialog.setView(layout);
imageDialog.create();
imageDialog.show();
Run Code Online (Sandbox Code Playgroud)

XML文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/thumbnail_IMAGEVIEW"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:contentDescription="@string/icon_DESCRIPTION" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是输出:

失败输出

图像的边缘有丑陋的边框 - 我不希望它们被显示出来.我尝试了很多东西和谷歌等列出的例子. - 没有任何工作.

最好的选择是在图像后面制作对话框/视图,大小与图像相同.另一种方法是将图像背后的背景设置为透明.

我如何实现任何解决方案?我喜欢让背景与图像大小相同,所以没有留下"隐形"的东西,但我也可以使用透明选项.


解:

// Get screen size
Display display = context.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x;
int …
Run Code Online (Sandbox Code Playgroud)

android dialog image popup transparent

21
推荐指数
1
解决办法
1万
查看次数

ANDROID - 通过tcp socket将截图从java发送到android

我通过套接字进行了客户端 - 服务器聊天,效果很好.现在我想为服务器(Android手机)添加一个选项来从客户端(pc应用程序)抓取屏幕截图.创建屏幕截图工作正常,但每次从客户端到服务器的传输都会失败.

客户端/发送者:

在我将图像直接写入输出流之前,我在服务器端出错,所以我尝试了这种方式,但它是一样的.

public class ClientScreenshotThread implements Runnable {

// - Software Init - //
private Socket transferSocket;
private BufferedImage screenshot;
private Robot robot;
private BufferedWriter outToServer;
private FileInputStream inStream;
private DataOutputStream outStream;

// - Var Init - //
private final int SERVER_TRANSFER_PORT = 65000;

private int screenWidth, screenHeight;

// -------------------------------------------------- //

public ClientScreenshotThread() {

}

@Override
public void run() {
    try {
        SocketAddress sockaddr = new InetSocketAddress(Client.SERVER_IP, SERVER_TRANSFER_PORT);
        transferSocket = new Socket();
        transferSocket.connect(sockaddr, 5000);     // 5sec Timeout …
Run Code Online (Sandbox Code Playgroud)

java sockets android tcp image

6
推荐指数
1
解决办法
4604
查看次数

从API方法到Servlet的Google App Engine Java HTTP Post Image

我希望有人可以帮助我.

我想将一个url作为字符串发送到客户端端点函数,然后我希望端点函数下载图像并通过HTTP Post请求发送到我的servlet(也在GAE上运行).

问题是 - 根本没有张贴图片.

这很奇怪,因为如果我在Android客户端上使用完全相同的代码(HttpPost类),它工作正常 - 图像被发布到servlet,servlet将图像存储到数据存储区/ blobstore中.

是否有可能从客户端端点函数向servlet发送HTTP Post请求?

解决了,请看下面的答案!


安卓:

BackendApi.anyMethod("url-to-any-image").execute();
Run Code Online (Sandbox Code Playgroud)

客户端端点功能:

@ApiMethod(path = "anyMethod")
public void anyMethod(@Named("url") String url) {
  // --------------------------------------------------
  // No input validation here - just a proof of concept
  // --------------------------------------------------

  try {
    // Download image
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    Resources.asByteSource(new URL(url)).copyTo(buffer);

    // Upload image
    HttpPost httpPost = new HttpPost();
    httpPost.setTarget(new URL(BlobstoreServiceFactory.getBlobstoreService().createUploadUrl("/upload")));
    httpPost.add("image", buffer.toByteArray());
    httpPost.send();
  } catch (IOException e) {
    LOG.log(Level.WARNING, e.getMessage(), e);
  }
}
Run Code Online (Sandbox Code Playgroud)

HttpPost类:

public class HttpPost { …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine android servlets google-cloud-datastore

5
推荐指数
1
解决办法
668
查看次数