我想在地图上显示不同的标记.我能找到的一个解决方案是为每个标记定义一个新的叠加层.但后来我发现它可以更轻松地完成
OverlayItme.set Marker(Drawable marker);
使用单个叠加层.它工作正常,但标记是用阴影绘制的,我想显示没有阴影的标记图标,我的原始图片没有阴影,我想按原样绘制它.可能吗?这就是我现在正在做的事情:
markerpic = this.getResources().getDrawable(R.drawable.icon_map);
markerpic.setBounds(0, 0, markerpic.getIntrinsicWidth(), markerpic.getIntrinsicHeight());
GeoPoint gp = new GeoPoint((int)(lat*1E6), (int)(lng*1E6));
overlayitem = new OverlayItem(gp, "Title", "Message");
overlayitem.setMarker(markerpic);
myoverlay.adOverlay(overlayitem);
mapOverlay.add(myoverlay);
Run Code Online (Sandbox Code Playgroud) 当改变Ativity A为Activity B和反之时,我想要只有 Activity B动画,但在我的情况下Activity A也动画.(在屏幕左侧留下一个空白区域)Activity B动画效果很好,我的问题是动画的Activity A.(不应该存在).我已经设定
//Activity B
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(R.anim.fadein, R.anim.fadeout);
setContentView(R.layout.mylayout);
//..........
}
Run Code Online (Sandbox Code Playgroud)
只在Activity B.我希望它Activity A永远不会从屏幕上动画或消失.
我用这种方式修改了反向动画(从更改Activity B到Activity A):
//Activity B
@Override
public void onPause(){
super.onPause();
overridePendingTransition(0, R.anim.fadeout);
}
Run Code Online (Sandbox Code Playgroud)
这样做效果很好,所以,现在问题只是从改变Activity A到Activity B,我希望同样的行为Activity A(只是停留,没有动画).但如果我尝试overridePendingTransition(R.anim.fadein, 0);在onCreate(),Activity A从屏幕上消失.
fadein.xml
<set …Run Code Online (Sandbox Code Playgroud) 我想在imageView尝试从用户先前删除的本地文件打开图像并显示默认图像时处理这种情况.为此,我尝试:
int flag = 0;
try{
img_car.setImageURI(Uri.parse(path_picture));
flag = 1;
}
catch(Exception e){ //if I put FileNotFoundException I get error: Unreachable catch block for FileNotFoundException. This exception is never thrown from the try
// statement body
Log.i("TAG EXCEPTION PIC", e.getMessage());
img_car.setImageResource(pictureId);
}
Run Code Online (Sandbox Code Playgroud)
两者img_car.setImageResource(pictureId); 和 img_car.setImageURI(Uri.parse(path_picture));(当图片物理存在时)工作.
我的问题是我无法捕获异常(当图片不存在时),基本上这个子句不会抛出它.(我LogCat不显示任何信息日志消息).即便如此,LogCat显示java.io.FileNotFoundException:
09-06 13:12:22.066: W/ImageView(27274): Unable to open content:
file:///storage/sdcard0/folder_name/my_image.PNG
09-06 13:12:22.066: W/ImageView(27274): java.io.FileNotFoundException:
/storage/sdcard0/folder_name/my_image.PNG: open
failed: ENOENT (No such file or directory) 09-06 13:12:22.066:
W/ImageView(27274): …Run Code Online (Sandbox Code Playgroud) 当我更新我的数据库时,我想显示一个进度对话框.我的问题是ProgressDialog出现迟到了,在4-5秒之后,然后出现并且消失的速度非常快,它在屏幕上几毫秒几乎看不到它,然后立即在列表中显示新数据.这让我觉得ProgressDialog正在等待数据库更新(它不需要花费太多,大约4.5秒)然后它会在屏幕上显示但是很快就会消失.我想立即显示ProgressDialog我按下"更新"按钮并在屏幕上停留4-5秒.
class MyAsyncTask extends AsyncTask<Void, Void, Void>{
ProgressDialog myprogsdial;
@Override
protected void onPreExecute(){
myprogsdial = ProgressDialog.show(MyActivity.this, null, "Upgrade", true);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
RefreshDataBase();
}
});
return null;
}
@Override
protected void onPostExecute(Void result){
myprogsdial.dismiss();
}
}
Run Code Online (Sandbox Code Playgroud)
我打电话的时候 new MyAsyncTask().execute();