0
내 앱에서는 서버에서 비디오 및 이미지를 스트리밍해야합니다. 비디오를 사용할 수없는 경우 이미지를 검색하여 사진 갤러리에 표시해야합니다. 나는이 부분을 성공적으로 수행했지만, 한 번에 하나의 이미지 만 사용했습니다. 이 방법은 다음 이미지를로드하는 데 오랜 시간이 걸리므로 속도가 느립니다.서버에서 여러 이미지를 가져 와서 하나씩 표시하는 방법
내가 원하는 것은 Onclicklistener
을 사용하여 4 개의 URL (이 예에서는 서버에서 검색 할 총 이미지 수를 4로 지정)을 이미지 뷰에 하나씩 표시하는 것입니다. 제안 사항을 알려주십시오. 어떻게해야합니까? 감사합니다
public class Imageviewing extends Activity implements OnGestureListener{
private static final String TAG = null;
ImageView imView;
String imageUrl="<myServerlink>";
Random r= new Random();
String urilink;
private GestureDetector myGesture ;
private static final int SWIPE_MIN_DISTANCE = 75;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_imageviewing);
Intent intent = getIntent();
// setContentView(R.layout.);
// String
urilink = intent.getExtras().getString("videouri");
Log.e(TAG, urilink.toString());
Button bt3= (Button)findViewById(R.id.get_imagebt);
bt3.setOnClickListener(getImgListener);
imView = (ImageView)findViewById(R.id.imview);
myGesture = new GestureDetector(this);
}
View.OnClickListener getImgListener = new View.OnClickListener()
{
@Override
public void onClick(View view) {
finish();
}
};
@Override
public boolean onTouchEvent(MotionEvent event){
return myGesture.onTouchEvent(event);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_imageviewing, menu);
return true;
}
Bitmap bmImg;
void downloadFile(String fileUrl){
URL myFileUrl =null;
try {
myFileUrl= new URL(fileUrl);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bmImg = BitmapFactory.decodeStream(is);
imView.setImageBitmap(bmImg);
Log.i("im url","Image to Imageview");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public boolean onDown(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
// TODO Auto-generated method stub
try {
//do not do anything if the swipe does not reach a certain length of distance
// if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
// return false;
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) {
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
int i = r.nextInt(5-1)+1;
downloadFile(imageUrl+urilink+"-"+i+".jpg");
Log.i("im url",imageUrl+urilink+"-"+i+".jpg");
return false;
}
/* // left to right swipe
else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
ViewHistory();
}*/
} catch (Exception e) {
// nothing
}
return false;
}
@Override
public void onLongPress(MotionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onScroll(MotionEvent arg0, MotionEvent arg1, float arg2,
float arg3) {
// TODO Auto-generated method stub
return false;
}
@Override
public void onShowPress(MotionEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public boolean onSingleTapUp(MotionEvent arg0) {
// TODO Auto-generated method stub
return false;
}
}
저장 이미지 당신이 getCacheDir에 이미지를 저장하려고한다, 나쁜 될 수 있습니다> http://developer.android.com/reference/android/content/Context.html#getCacheDir%28%29 – deadfish