我目前正在从事其他人的项目,因为他们已经离开了公司。我只是在实习,Java不是我的强项。
基本上,该应用程序通过从提要接收信息并将该信息放置在相关位置来工作。
然而,客户要求在已同意的图像上放置图形。
这是为我完成的,因为我无法访问提要。
我想指出,带有图形的提要在 iPhone 应用程序上运行良好。
按下搜索按钮后,此消息会在我的日志 cat 中打印出来:java.io.FileNotFoundException: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321470/53659_T_ADDRESSES_52050_TN.jpg&Text=LET AGREED
正如您通过单击链接所看到的那样,将出现图标。
当我单击选项卡搜索属性时,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();
}
};
}
我没有更多的空间来粘贴另一个类:(
任何帮助表示赞赏。
先感谢您!!
这是加载搜索的日志猫
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=同意 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=让 我们同意 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=让我们同意 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 AGREED 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 AGREED 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 AGREED 09-11 13:14:00.001: D/PowerManagerService(182): 获取WakeLock 标志=0x1 标签=AlarmManager 09-11 13:14:00.031:D/PowerManagerService(182):releaseWakeLock 标志=0x1 标签=AlarmManager 09-11 13:14:02.051:I/System.out(8774):java.io。文件未找到异常: http://images.ultrait.me/ImageProcessor.aspx?imageURL=381/Sales/321470/53659_T_ADDRESSES_52050_TN.jpg&Text=LET AGREED 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 AGREED 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 AGREED 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 = 同意 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=让 我们同意 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=让我们同意 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 AGREED 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):处理 rmnet 事件 09-11 13 :14:12.181: I/pcm_service(107): rstate == pcm_monitor_kevents 中的 PCM_RMNETSTATE_ERROR 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_STATE_USB_UNPLUG) 09-11 13:14:12.191 中收到事件 (DUN_EVENT_RMNET_DOWN):I/dun_service(115):忽略 USB_UNPLUG_STATE 中的事件 DUN_EVENT_RMNET_DOWN 09-11 13:14:12.191:I/dun_service(115):移至状态(DUN_STATE_USB_UNPLUG)