我的应用程序允许用户将图像保存到SD卡.但是我不知道如何卸下并重新安装SD卡之前如何让它出现在画廊中.我已经用Google搜索了几天这个问题,但我不确定如何让它自动出现.我找到了 这个链接,但我不确定如何使用该类.这是我用来保存文件.在try catch块的底部是我想要扫描sd卡以获取新媒体的地方.
FileOutputStream outStream = null;
File file = new File(dirPath, fileName);
try {
outStream = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
} catch {
...
}
Run Code Online (Sandbox Code Playgroud)
如果有人能指出我正确的方向,我将不胜感激.
我正在创建一个iPad应用程序,它UIImageViews在水平滚动视图中有几张图片().我希望允许用户在点击其中一个图片时将图像保存到他们的照片库UIImageView.我喜欢Safari处理这个问题的方式:你只需点击并按住直到弹出菜单出现,然后点击保存图像.我知道有" UIImageWriteToSavedPhotosAlbum".但我是iOS开发的新手,我不太清楚它去哪里以及放置它(即如何检测哪个图像被点击).
从我发现的,我看到人们使用UIImage而不是UIImageView.我需要将视图转换为UIImage?如果是这样,怎么样?如何检测用户何时点击图像以及哪些图像UIImageView被点按?如果你可以指出我正确的方向,也许一些例子我会非常感激.
我正在使用C#WPF应用程序并尝试使用非托管DLL(无法访问源代码).我需要的结构是'NET_DVR_IPPARACFG_V40',其中包含一堆其他结构/联合.以下是文档提供给我们的信息:
struct{
DWORD dwSize;
DWORD dwGroupNum;
DWORD dwAChanNum;
DWORD dwDChanNum;
DWORD dwStartDChan;
BYTE byAnalogChanEnable[MAX_CHANNUM_V30];
NET_DVR_IPDEVINFO_V31 struIPDevInfo[MAX_IP_DEVICE_V40];
NET_DVR_STREAM_MODE struStreamMode[MAX_CHANNUM_V30];
BYTE byRes2[20];
}NET_DVR_IPPARACFG_V40
struct{
BYTE byEnable;
BYTE byProType;
BYTE byEnableQuickAdd;
BYTE byRes1;
BYTE sUserName[NAME_LEN];
BYTE sPassword[PASSWD_LEN];
BYTE byDomain[MAX_DOMAIN_NAME];
NET_DVR_IPADDR struIP;
WORD wDVRPort;
BYTE byRes2[34];
}NET_DVR_IPDEVINFO_V31
struct{
char sIpV4[16];
BYTE sIpV6[128];
}NET_DVR_IPADDR
struct{
BYTE byGetStreamType;
BYTE byRes[3];
NET_DVR_GET_STREAM_UNION uGetStream;
}NET_DVR_STREAM_MODE
union{
NET_DVR_IPCHANINFO struChanInfo;
NET_DVR_IPSERVER_STREAM struIPServerStream;
NET_DVR_PU_STREAM_CFG struPUStream;
NET_DVR_DDNS_STREAM_CFG struDDNSStream;
NET_DVR_PU_STREAM_URL struStreamUrl;
NET_DVR_HKDDNS_STREAM struHkDDNSStream;
}NET_DVR_GET_STREAM_UNION
struct{
BYTE byEnable;
BYTE byIPID;
BYTE byChannel;
BYTE byIPIDHigh; …Run Code Online (Sandbox Code Playgroud) 我试图将服务器中的jpg文件显示为imageView.当我尝试加载较小的图像(300x400)时,没有问题.但是当我尝试加载全尺寸图片(2336x3504)时,图像将无法加载.图像的文件大小仅为2mb.我没有在logcat中得到任何错误,也没有抛出异常.它根本不会加载图像.我也试过用这个:
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap preview_bitmap=BitmapFactory.decodeStream(is,null,options);
Run Code Online (Sandbox Code Playgroud)
这对于加载大文件没有任何帮助,但它确实调整了较小的图像(就像它假设的那样).我确实将大图添加到我的资源并测试它,就像它嵌入在应用程序中一样,它工作正常,只是无法在服务器上工作.我一整天都在工作,似乎无法弄清楚如何加载这些大图片.任何人都可以帮我解决这个问题吗?谢谢你的任何信息.
这是我找到上面代码的链接,并且一直在玩其他示例,但仍然没有让它工作.
编辑:
这是我正在使用的代码,用于加载图像:
public static Bitmap getBitmapFromURL(String src) {
Bitmap bmImg;
URL myFileUrl = null;
try {
myFileUrl = new URL(src);
HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize = 16;
bmImg = BitmapFactory.decodeStream(is, null, options);
return bmImg;
} catch (Exception e) {
// TODO Auto-generated catch block
Log.d("Error", e.toString());
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
这是logcat截图(无法弄清楚如何在eclipse中正确复制文本)我在点击按钮加载图像之前清除了日志.所以你看到的就是当我点击那个按钮时会发生什么.我删除了公司和应用程序名称(你看到"com.",假设它的"com.mycompany.myapp".

我在VS2017中为我的WPF项目添加服务引用时遇到问题.服务本身是使用EntityFramework(EntityFrameworkDataService)的WCF数据服务.在我之前使用的VS2013中,我没有任何问题向我的WPF项目添加服务.我上个月升级到VS2017,最近对WCF服务进行了一些更改,需要刷新我的WPF项目中的引用.我似乎无法刷新它,所以我删除了引用并开始尝试重新添加引用,现在我收到了这个错误消息:
无法添加指定的OData API,因为现在仅支持连接服务的OData API.
有关详细信息,请参阅:https: //aka.ms/odatavsclientguidance
提供的链接没有关于VS2017设置的任何信息.它建议使用'OData Connected Service'扩展名,但该扩展名不支持VS2017(试过它但得到"不兼容"的消息).我还为VS2017找到了"VS WCF连接服务"扩展,但它似乎不支持WPF项目(或至少我无法弄清楚).
是否有人在向WPF项目添加WCF数据服务引用时遇到此问题?我还可以尝试其他任何建议吗?
我已经尝试了好几天,但似乎无法在整个过程中全神贯注。我的应用程序从服务器访问许多图像。到目前为止,已设置为一次加载1张图像并显示它。当用户单击下一个按钮时,下一个图像然后被加载并显示。但是加载时间有点太长。如何改善下一张图片的加载时间?
我一直在玩线程和AsyncTask。我的想法是也将上一张和下一张图像保存在内存中。当用户点击下一步时,我将执行以下操作:
prevImage = currentImage;
currentImage = nextImage;
nextImage = getBitmapfromURL(urlPath);
Run Code Online (Sandbox Code Playgroud)
并且nextImage实际上是在AsyncTask或Thread中执行的。我的问题是,如果用户在该线程完成之前单击了下一个按钮(它仅显示空白图像)。所以我不确定那是不是要走的路。有没有其他方法可以改善这些图像的加载时间?任何想法,将不胜感激。
我在这里找到了Fedor的代码并将其实现到我的项目中.唯一的区别是我的应用程序没有列表视图,而是我从服务器一次访问1个图像.当活动启动时,我调用"DisplayImage(...)"来显示第一张图片.然后有2个按钮(上一个/下一个),当点击它们时,它们称为"DisplayImage(...)".
它工作正常一段时间,但后来我得到一个Out of Memory错误.在他的代码的顶部,他评论您可能想要使用SoftReference.我假设这会解决我的问题,对吗?我玩了一下但是当我尝试修改它以使用SoftReference时,图像永远不会加载.我之前从未使用过SoftReference所以我认为我只是缺少一些东西.我如何修改该代码(ImageLoader)来修复我的OOM错误?在浏览图片时是否有更好的缓存方式?
更新: 以下是您不想查看源中的其他文件的代码.
package com.fedorvlasov.lazylist;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.util.HashMap;
import java.util.Stack;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.widget.ImageView;
public class ImageLoader {
//the simplest in-memory cache implementation. This should be replaced with something like SoftReference or BitmapOptions.inPurgeable(since 1.6)
private HashMap<String, Bitmap> cache=new HashMap<String, Bitmap>();
private File cacheDir;
public ImageLoader(Context context){
//Make the background thead low priority. This way it will …Run Code Online (Sandbox Code Playgroud) 我一直在努力弄清楚如何在一天的大部分时间内做到这一点,但我找不到多少帮助.我们有这个多媒体应用程序,允许用户查看有关特定主题的图片,视频和音乐/铃声.我知道您可以使用保存图像UIImageWriteToSavedPhotosAlbum,您可以使用保存视频文件UISaveVideoAtPathToSavedPhotosAlbum.但我无法弄清楚如何允许用户保存音频文件.所有文件都存储在应用程序中,因此它不像我正在尝试从Internet上流式传输或下载它们.有没有人有关于如何做到这一点的任何指示?
我有3个xib文件连接到同一个类,以减少重复编码.但是,在加载新的nib文件时(即在ViewDidLoad方法中),我想要完成不同的操作.我想过做一个if语句来比较当前显示的xib的名字和字符串.我一直试图弄清楚如何在一天的大部分时间里做到这一点,但我没有运气.如果这让你感到困惑,这里有一些伪代码:
if (currentXibInDisplay == @"XibFileName1")
// Do This...
else if (currentXibInDisplay == @"XibFileName2")
// Do This...
Run Code Online (Sandbox Code Playgroud)
有办法做到这一点,对吗?看起来很简单,但我现在很难过.感谢您提供的任何信息.
我试图弄清楚如何在连接时将应用程序中嵌入的铃声文件(.m4r)复制到iTunes.将文件复制到iTunes后,他们可以像其他文件一样简单地同步文件.我知道这是可能的,因为还有其他铃声应用程序可以完成同样的事情.如果有人能指出我正确的方向或者可能提供一些示例代码,那就太好了.谢谢.
我有2个视图共享相同的类文件(.h和.m).在第一个视图中,我有一个UIPicker,其中包含一个项目列表和一个按钮.如果用户单击该按钮,我希望我的第二个视图提供相应的图片(基于在UIPicker中选择的项目).
我的想法是根据所选项目在第一个视图中设置NSString.然后,当用户单击按钮将第二个视图推送到屏幕上时,我可以使用新视图传递该字符串.我一直在"谷歌搜索"一段时间,但我似乎无法用手指环绕它.如果重要,我正在使用导航控制器.这是在按钮单击上执行的代码:
-(IBAction) viewPictures{
ViewControllerClass *sView = [[ViewControllerClass alloc] initWithNibName:@"ViewController2XIB" bundle:nil];
[self.navigationController pushViewController:sView animated:YES];
}
Run Code Online (Sandbox Code Playgroud) iphone ×5
android ×4
ipad ×3
bitmap ×2
audio ×1
audioformat ×1
c# ×1
caching ×1
compare ×1
download ×1
file ×1
imageview ×1
itunes ×1
lazy-loading ×1
marshalling ×1
media ×1
nib ×1
nsstring ×1
odata ×1
photolibrary ×1
ringtone ×1
save ×1
sd-card ×1
struct ×1
sync ×1
uiimageview ×1
unions ×1
variables ×1
wcf ×1
wpf ×1
xcode ×1
xib ×1