我目前正在处理别人的项目,因为他们离开了公司。 我只是在实习,java不是我的主题。
基本上,应用程序的工作原理是从提要中接收信息并将信息放在相关位置。
然而,客户要求将图片放在图片上,这些图片已经同意了。
这已经为我完成了,因为我没有访问任何Feed。
我想指出,带有图形的Feed在iPhone应用程序上运行得非常好。
按下搜索按钮后,此消息将在我的日志中打印出来: java.io.FileNotFoundException:http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321470/53659_T_ADDRESSES_52050_TN.jpg&Text=LET已同意
从单击链接可以看到,图标出现。
当我点击选项卡搜索属性时,将开始加载Feed,图像将显示在列表视图中。图像会出现,但它上面没有让出约定的图标,我相信这是因为它将图像中的图像作为缩略图放置一个,但我需要它来显示图形(我不确定这是否甚至是正确的。)
当我点击查看属性时,图像消失。
我正在截止日期工作,没有人帮助我。请耐心等待我。
以下是我认为你可能需要看到的一些课程。
public class _06_Photos extends Activity implements ViewFactory{
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
//GUI Components
TextView tv_counter;
//ImageView iv_activity;
ImageSwitcher imageSwitcher;
Button b_play;
Button b_next;
Button b_previous;
FrameLayout topFrame, bottomFrame;
//Images and Stuff
String [] str_imageURLs;
Bitmap [] bm_images;
int picNum = 0;
boolean play;
boolean stop;
Handler handler;
Thread playThread;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xl_06_photos);
handler = new Handler();
playThread = new Thread(Play);
play = false;
stop = false;
playThread.start();
str_imageURLs = new String[5];
for(int i=0; i<5;++i)
str_imageURLs[i] = "";
bm_images = new Bitmap[5];
InitView();
Bundle extras = getIntent().getExtras();
if (extras != null) {
str_imageURLs[0] = extras.getString("img1");
str_imageURLs[1] = extras.getString("img2");
str_imageURLs[2] = extras.getString("img3");
str_imageURLs[3] = extras.getString("img4");
str_imageURLs[4] = extras.getString("img5");
}
for(int i=0; i<5; i++)
System.out.println(str_imageURLs[i]);
new Thread(new Runnable() {
public void run() {
for(int i=0; i<5; ++i)
{
try{
bm_images[i] = FindPropertyActivity.DownloadImage(str_imageURLs[i]);
}
catch(Exception e){
System.out.println("Image" + i + " not downloaded - " + e);
}
try{
if(bm_images[i] == null)
{
System.out.println("Bitmap " + i + " is null");
bm_images[i] = BitmapFactory.decodeResource(getResources(), R.drawable.download_error);
}
if(picNum == i)
//iv_activity.setVisibility(View.INVISIBLE);
//Drawable d =new BitmapDrawable(bm_images[i]);
//imageSwitcher.setImageDrawable(d);
handler.post(SetPic);
}
catch(Exception e){
System.out.println("PicNum null/visiablity" + i + " not setCorrectly - " + e);
}
}
System.gc();
}
}).start();
}
private void InitView(){
handler.post(SetPic);
tv_counter = (TextView)findViewById(R.id.photo_tv_counter);
imageSwitcher = (ImageSwitcher)findViewById(R.id.photo_imageSwitcher);
imageSwitcher.setFactory(this);
topFrame = (FrameLayout)findViewById(R.id.photo_topFrame);
bottomFrame = (FrameLayout)findViewById(R.id.photo_bottomFrame);
final GestureDetector gestureDetector = new GestureDetector(new MyGestureDetector());
imageSwitcher.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
gestureDetector.onTouchEvent(event);
return true;
}
});
b_play = (Button)findViewById(R.id.photo_b_play);
if(play){
b_play.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_pause));
topFrame.setVisibility(View.INVISIBLE);
bottomFrame.setVisibility(View.INVISIBLE);
}
else{
b_play.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_play));
}
b_play.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Drawable background = v.getBackground();
background.setColorFilter(0xFF7A7A7A, PorterDuff.Mode.MULTIPLY);
v.setBackgroundDrawable(background);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Drawable background = v.getBackground();
background.setColorFilter(null);
v.setBackgroundDrawable(background);
if(play){
play = false;
b_play.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_play));
}
else{
play = true;
b_play.setBackgroundDrawable(getResources().getDrawable(R.drawable.button_pause));
topFrame.setVisibility(View.INVISIBLE);
bottomFrame.setVisibility(View.INVISIBLE);
}
}
return false;
}
});
b_previous = (Button)findViewById(R.id.photo_b_previous);
b_previous.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Drawable background = v.getBackground();
background.setColorFilter(0xFF7A7A7A, PorterDuff.Mode.MULTIPLY);
v.setBackgroundDrawable(background);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Drawable background = v.getBackground();
background.setColorFilter(null);
v.setBackgroundDrawable(background);
PreviousPic();
}
return false;
}
});
b_next = (Button)findViewById(R.id.photo_b_next);
b_next.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
Drawable background = v.getBackground();
background.setColorFilter(0xFF7A7A7A, PorterDuff.Mode.MULTIPLY);
v.setBackgroundDrawable(background);
} else if (event.getAction() == MotionEvent.ACTION_UP) {
Drawable background = v.getBackground();
background.setColorFilter(null);
v.setBackgroundDrawable(background);
NextPic();
}
return false;
}
});
}
public void onDestroy(){
super.onDestroy();
stop = true;
}
private final Runnable SetPic = new Runnable() {
public void run() {
//iv_activity.setVisibility(View.INVISIBLE);
Drawable d =new BitmapDrawable(bm_images[picNum]);
imageSwitcher.setImageDrawable(d);
System.out.println("Pic Set");
tv_counter.setText("" + (picNum+1) + "/5");
}
};
private final Runnable Play = new Runnable() {
public void run() {
while(!stop){
try{
Thread.sleep(3000);
handler.post(new Runnable() {
public void run() {
if(play)
NextPic();
}
});
}
catch(Exception e){
System.out.println("Play Error - " + e);
}
}
}
};
protected void NextPic(){
try{
picNum++;
if(picNum > 4)
picNum = 0;
tv_counter.setText("" + (picNum+1) + "/5");
imageSwitcher.setInAnimation(this, R.anim.slide_in_left ); // added
imageSwitcher.setOutAnimation(this, R.anim.slide_out_left); // added
Drawable d =new BitmapDrawable(bm_images[picNum]);
imageSwitcher.setImageDrawable(d);
System.out.println("Next Pic");
}
catch(Exception e){
System.out.println("Next Fail " + e);
imageSwitcher.setImageDrawable(null);
}
}
protected void PreviousPic(){
picNum--;
if(picNum < 0)
picNum = 4;
tv_counter.setText("" + (picNum+1) + "/5");
try{
imageSwitcher.setInAnimation(this, R.anim.slide_in_right ); // added
imageSwitcher.setOutAnimation(this, R.anim.slide_out_right); // added
Drawable d =new BitmapDrawable(bm_images[picNum]);
imageSwitcher.setImageDrawable(d);
System.out.println("Previous Pic");
}
catch(Exception e){
System.out.println("Previous Fail " + e);
//imageSwitcher.setImageResource(R.drawable.download_error);
imageSwitcher.setImageDrawable(null);
}
}
protected void ChangeBarVisibles(){
if(topFrame.isShown()){
topFrame.setVisibility(View.INVISIBLE);
bottomFrame.setVisibility(View.INVISIBLE);
}
else{
topFrame.setVisibility(View.VISIBLE);
bottomFrame.setVisibility(View.VISIBLE);
}
}
public View makeView()
{
ImageView imageView = new ImageView(this);
imageView.setBackgroundColor(0xFF000000);
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
imageView.setLayoutParams(new
ImageSwitcher.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
return imageView;
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if(e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//Toast.makeText(SelectFilterActivity.this, "Left Swipe", Toast.LENGTH_SHORT).show();
NextPic();
//return true;
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
//Toast.makeText(SelectFilterActivity.this, "Right Swipe", Toast.LENGTH_SHORT).show();
PreviousPic();
//return true;
}
} catch (Exception e) {
// nothing
}
return true;
}
public boolean onSingleTapUp(MotionEvent e){
if(e.getAction() == MotionEvent.ACTION_UP){
ChangeBarVisibles();
}
return true;
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.xl_06_photos);
InitView();
}
@Override
public void onStop(){
super.onStop();
System.gc();
}
}
我的成绩课程:
public class _02_Results extends ListActivity {
private SearchParser xmlParser;
private URLQueryGenerator urlGen;
//private ProgressDialog dialog;
private Handler handler;
private CellAdapter_SearchResults adapter;
//private Thread thr_downloadImages;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xl_02_results);
handler = new Handler();
//thr_downloadImages = new Thread();
xmlParser = new SearchParser();
urlGen = new URLQueryGenerator(getParent());
adapter =new CellAdapter_SearchResults(_02_Results.this, AppDelegate.properties);
setListAdapter(adapter);
if(AppDelegate.properties.size() < 1){
//Reset Results page number to one. Because the results are starting afresh.
AppDelegate.pageNum = 1;
handler.post(ReloadCells);
GetResults();
}
if(AppDelegate.results_ListView_State != null)
getListView().onRestoreInstanceState(AppDelegate.results_ListView_State);
//if(AppDelegate.pick > 0)
// setSelection(AppDelegate.pick);
}
public void onResume()
{
super.onResume();
System.gc();
new Thread(LoadImages).start();
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
//If the last is picked and it is a Get More (Blank/Empty) Cell Download More Properties.
if(position >= AppDelegate.properties.size()-1 && AppDelegate.properties.get(position).str_ID.length() <= 0)
{
xmlParser = new SearchParser();
LoadMoreResults();
}
//Else view Property in Array
else{
Intent myIntent = new Intent(getParent(), _03_Detailed.class);
AppDelegate.pick = position;
TabGroupActivity parentActivity = (TabGroupActivity)getParent();
parentActivity.startChildActivity("Detailed_03", myIntent);
//Save the listview state for later init
AppDelegate.results_ListView_State = getListView().onSaveInstanceState();
}
}
protected void GetResults(){
//Show Progress Dialog
//dialog = ProgressDialog.show(getParent(), "", getResources().getString(R.string.search_alert), true);
Toast.makeText(getApplicationContext(), getResources().getString(R.string.search_alert), Toast.LENGTH_SHORT).show();
Runnable getResults = new Runnable() {
public void run() {
try{
//Get XML page from URL generated as a String
String xml = XMLfunctions.getXML(urlGen.createSearchURL());
if(xml == null){
handler.post(DownloadFail_Dialog);
System.out.println("xml is null");
return;
}
//Add the parsed properties return from Parser
AppDelegate.properties.addAll(xmlParser.ParserXML(xml));// xmlParser.ParserXML(urlString);
//Get the number of results for search
if(AppDelegate.numResults < 0)
AppDelegate.numResults = xmlParser.numResults;
System.out.println("Numb of Results:- " + AppDelegate.numResults);
//Add blank cell for more button
if(AppDelegate.properties.size() < xmlParser.numResults)
AppDelegate.properties.add(new Property());
//Refresh the ListView
try{handler.post(ReloadCells);}
catch(Exception e) { System.out.println(e);}
//dialog.dismiss();
if(AppDelegate.properties.size() < 1)
handler.post(NoResults_Dialog);
}
catch(Exception e){
//dialog.dismiss();
handler.post(DownloadFail_Dialog);
System.out.println(e);
}
finally{
//Dismiss Progress dialog
//dialog.dismiss();
System.gc();
new Thread(LoadImages).start();
}
}
};
new Thread(getResults).start();
}
protected void LoadMoreResults()
{
//Only proceed if more results are available
if(AppDelegate.numResults > AppDelegate.properties.size()){
Toast.makeText(getApplicationContext(), getResources().getString(R.string.search_more), Toast.LENGTH_SHORT).show();
//Show progress dialog
//dialog = ProgressDialog.show(getParent(), "", getResources().getString(R.string.loading), true);
Runnable getResults = new Runnable() {
public void run() {
try{
AppDelegate.pageNum++;
String xml = null;
//Get XML Page as a String
xml = XMLfunctions.getXML(urlGen.createSearchURL() + "&Page=" + AppDelegate.pageNum);
if(xml == null){
handler.post(DownloadFail_Dialog);
System.out.println("xml is null");
return;
}
//Add properties returned from XML Parser
AppDelegate.properties.addAll(AppDelegate.properties.size()-1, xmlParser.ParserXML(xml));// xmlParser.ParserXML(urlString);
handler.post(ReloadCells);
}
catch(Exception e){
System.out.println(e);
AppDelegate.pageNum--;
//dialog.dismiss();
}
finally{
//dialog.dismiss();
System.gc();
/*
if(thr_downloadImages.isAlive()){
thr_downloadImages.stop();
thr_downloadImages = null;
}
thr_downloadImages = new Thread(LoadImages);
thr_downloadImages.start();
*/
new Thread(LoadImages).start();
}
}
};
new Thread(getResults).start();
}
else{
handler.post(NoResults_Dialog);
}
}
/**
* **IMPORTANT**
*
* The functions below are for the activity to be accessed at any point.
* They should only be access by Handler.
*
* By using the handler, this can be accessed from inside a separate Thread other than the Main one.
* This is done because some GUI elements can not be accessed inside a Thread, other than the Main.
*
*/
private final Runnable LoadImages = new Runnable() {
public void run() {
for(int x=0; x <AppDelegate.properties.size(); x++){
try{
//Run the image download twice, because sometimes the images doesn't download the first time
if(AppDelegate.properties.get(x).img_thumb == null)
AppDelegate.properties.get(x).img_thumb = FindPropertyActivity.DownloadImage(AppDelegate.properties.get(x).str_imgURL1);
if(AppDelegate.properties.get(x).img_thumb == null)
AppDelegate.properties.get(x).img_thumb = FindPropertyActivity.DownloadImage(AppDelegate.properties.get(x).str_imgURL1);
handler.post(ReloadCells);
}
catch (Exception e) {System.out.println(e.toString());}
}
}
};
private final Runnable ReloadCells = new Runnable() {
public void run() {
adapter.UpdateDataSet(AppDelegate.properties);
adapter.notifyDataSetChanged();
}
};
private final Runnable DownloadFail_Dialog = new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(getParent());
builder.setMessage(getResources().getString(R.string.download_fail))
.setCancelable(false)
.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do nothing
}
});
AlertDialog alert = builder.create();
alert.show();
}
};
private final Runnable NoResults_Dialog = new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(getParent());
builder.setMessage(getResources().getString(R.string.no_results))
.setCancelable(false)
.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
//do nothing
}
});
AlertDialog alert = builder.create();
alert.show();
}
};
}
我没有更多的空间来粘贴另一个类:(
感谢任何帮助。
提前谢谢!!
这是加载搜索的日志cat
09-11 13:13:47.451:I / System.out(8774):解析器已完成!! 09-11 13:13:52.541:I / System.out(8774):java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321464/53674_T_ADDRESSES_52056_TN.jpg&Text=LET 同意09-11 13:13:53.431:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321465/58467_T_ADDRESSES_57077_OT.jpg&Text=LET 同意09-11 13:13:54.031:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321466/58441_T_ADDRESSES_57075_OT.jpg&Text=LET 同意09-11 13:13:54.651:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321467/53631_T_ADDRESSES_52035_TN.jpg&Text=LET 同意09-11 13:13:55.801:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321468/53626_T_ADDRESSES_52026_TN.jpg&Text=LET 同意09-11 13:13:59.591:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321469/53540_T_ADDRESSES_51961_TN.jpg&Text=LET 同意09-11 13:14:00.001:D / PowerManagerService(182):acquireWakeLock flags = 0x1 tag = AlarmManager 09-11 13:14:00.031: D / PowerManagerService(182):releaseWakeLock flags = 0x1 tag = AlarmManager 09-11 13:14:02.051:I / System.out(8774):java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321470/53659_T_ADDRESSES_52050_TN.jpg&Text=LET 同意09-11 13:14:03.691:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321471/53611_T_ADDRESSES_52018_TN.jpg&Text=LET 同意09-11 13:14:04.761:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321472/53589_T_ADDRESSES_51972_TN.jpg&Text=LET 同意09-11 13:14:05.531:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321473/46397_T_ADDRESSES_43205_OT.jpg&Text=LET 同意09-11 13:14:05.851:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321474/53664_T_ADDRESSES_52053_TN.jpg&Text=LET 同意09-11 13:14:06.531:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321475/53669_T_ADDRESSES_52054_TN.jpg&Text=LET 同意09-11 13:14:08.701:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321476/53651_T_ADDRESSES_52049_TN.jpg&Text=LET 同意09-11 13:14:09.991:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321477/43296_T_ADDRESSES_40850_TN.jpg&Text=LET 同意09-11 13:14:11.331:I / System.out(8774): java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321478/53944_T_ADDRESSES_52241_TN.jpg&Text=LET 同意09-11 13:14:11.961:I / System.out(8774):结果麻木: - 177 09-11 13:14:12.031:I / System.out(8774): java.net.MalformedURLException:未找到协议:09-11 13:14:12.031:I / System.out(8774):java.lang.NullPointerException 09-11 13:14:12.031:I / System.out(8774):java.net.MalformedURLException: 未找到协议:09-11 13:14:12.031:I / System.out(8774): java.lang.NullPointerException 09-11 13:14:12.181:I / pcm_service(107): process rmnet event 09-11 13:14:12.181:I / pcm_service(107):rstate == PCM_RMNETSTATE_ERROR in pcm_monitor_kevents 09-11 13:14:12.181: I / dun_service(115):进程rmnet事件09-11 13:14:12.181: I / dun_service(115):发布事件3 09-11 13:14:12.191: I / dun_service(115):收到的事件:DUN_EVENT_RMNET_DOWN 09-11 13:14:12.191:I / dun_service(115):收到事件(DUN_EVENT_RMNET_DOWN) 在州(DUN_STATE_USB_UNPLUG)09-11 13:14:12.191:I / dun_service(115): 忽略USB_UNPLUG_STATE 09-11中的事件DUN_EVENT_RMNET_DOWN 13:14:12.191:I / dun_service(115):已移至州(DUN_STATE_USB_UNPLUG)
答案 0 :(得分:1)
我还没有检查过您的代码,但我想到的第一件事是:您是否检查了应用程序的权限? 它可能来自那里。 (E.G.:没有互联网许可,找不到文件,因为它没有权限访问它)
编辑:你应该检查(调试或记录)这个“str_imageURLs [i]”是否没有返回奇怪的东西(你应该删除你的URL中的空格)。
然后,如果出现问题,我猜它来自:“FindPropertyActivity.DownloadImage” 你能发贴吗? 你是否将图像作为输入流并从中形成一个可绘制的(如果它不是在DownloadImage中完成的那样)?
Edit2 :我在布局中创建了一个只有ImageView的基本应用程序。然后我使用你的“DownloadImage”方法从url获取图像,没有其附加参数(我停在“.jg”)。它在android 4.2上不起作用,因为它要求它是异步的。
我在我的主要活动中添加了这个,然后它起作用了:
ThreadPolicy tp = ThreadPolicy.LAX;
StrictMode.setThreadPolicy(tp);
但很明显,这不是必须要做的事情。
此事既不是您的网址,也不是获取图片的方法。它适用于android 4.2。
你可以用Log.e替换你所有的system.out.println ***(“PutClassNameHere”,“把你的cutom消息放在那里”,throwable); ? 这将在logCat中写入错误