在文件activity_mai.xml
中的我的Android应用程序中,我ImageView
默认设置了ic_launcher.png
的值。
<ImageView
android:id="@+id/viewImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.05"
android:contentDescription="@string/content"
android:src="@drawable/ic_launcher"
/>
我需要检查当执行图像文件上传时图像不是ic_launcher并强制用户选择一张图片或在他的智能手机中拍摄新照片。
我尝试过这种方法但没有成功,因为没有执行此检查。
My code below:
@Override
public void onClick(View arg0) {
if (area.getSelectedItem().toString().trim()
.equalsIgnoreCase("area")) {
Toast.makeText(MainActivity.this, "area.",
Toast.LENGTH_SHORT).show();
} else if (messageText.getText().toString().length() <= 0) {
Toast.makeText(MainActivity.this, "message",
Toast.LENGTH_SHORT).show();
} else if (arg0 == btnselectpic) {
selectImage();
} else if (arg0 == uploadButton) {
if (imageview.toString().equals("ic_launcher.png")) {
messageText.setError("image");
} else {
progress = ProgressDialog.show(MainActivity.this, "",
"Uploading file...", false, false);
int secondsDelayed = 5;
new Handler().postDelayed(new Runnable() {
public void run() {
startActivity(new Intent(MainActivity.this,
MainActivity.class));
finish();
}
}, secondsDelayed * 1000);
}
提前致谢
edit
if (imageview.getDrawable() == getResources().getDrawable(
R.drawable.ic_launcher)) {
Toast.makeText(MainActivity.this, "image",
Toast.LENGTH_SHORT).show();
}
LogCat
09-26 14:11:10.530:
D/MainActivity.class(9773):
myDrawable 1 : android.graphics.drawable.BitmapDrawable@425dc490
09-26 14:11:10.530: D/MainActivity.class(9773):
myDrawable 2 : android.graphics.drawable.BitmapDrawable@4326f0e0
Log.d("MainActivity.class", "myDrawable 1 : " + imageview.getDrawable());
Log.d("MainActivity.class", "myDrawable 2 : "
+ getResources().getDrawable(R.drawable.ic_launcher));
答案 0 :(得分:0)
使用toString()无法在imageView中获取图像的文件名。这就是API中描述toString()的方法:
但这意味着不是文件名。如果您想从Image获取fileName,那么在将此图像设置为视图时,将文件名设置为标记是更好的解决方案:
yourImageView.setTag(yourFileName);
为了给您提供更好的帮助,我们需要查看用户选择图像的位置以及将此图像设置到视图的位置。在这个地方,必须有名称设置为标记。
答案 1 :(得分:0)
试试这个
Drawable myDrawable = yourImageView.getDrawable();
您可以将其与可绘制资源(如
)进行比较if(yourImageView.getDrawable()==getResources().getDrawable(R.drawable.ic_launcher)){
messageText.setError("image");
}
else
{
// complete your work
}
答案 2 :(得分:0)
请尝试本教程,这里是如何比较Android(Java)中的2个Drawable对象:http://thoughtsoframy.blogspot.it/2013/08/comparing-drawables-in-android.html