在我的安卓应用程序的activity_mai.xml
文件中,我将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));
发布于 2014-09-26 11:46:57
不能使用toString()获取imageView中图像的文件名。toString()在接口中是这样描述的:
但这意味着不是文件名。如果您想从图像中获取fileName,在将此图像设置为视图时,最好将文件名设置为标记,如下所示:
yourImageView.setTag(yourFileName);
为了给您提供更好的帮助,我们需要查看用户在何处选择图像,以及在何处将此图像设置为视图。在这个地方,必须有设置为标签的名称。
发布于 2014-09-26 12:02:11
通过这个试用一下
Drawable myDrawable = yourImageView.getDrawable();
您可以将其与可绘制的资源进行比较,例如
if(yourImageView.getDrawable()==getResources().getDrawable(R.drawable.ic_launcher)){
messageText.setError("image");
}
else
{
// complete your work
}
发布于 2014-09-26 13:05:54
请尝试这个教程,下面是你如何在安卓(Java)中比较两个可绘制的对象:http://thoughtsoframy.blogspot.it/2013/08/comparing-drawables-in-android.html
https://stackoverflow.com/questions/26058556
复制相似问题