Usare un AlertDialog con ImageView in Android
In pratica nella nostra app Android abbiamo un layout che ha anche un componente ImageView.
E noi vogliamo cliccare sull'immagine per visualizzarla più grande.
Per farlo useremo un AlertDialog.
Cominciamo con il nostro componente che risiede dentro ad un layout:
<ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1.9"
android:paddingRight="10dp"
android:src="@drawable/planimetria" />
Questa invece la nostra claase per l'AlertDialog:
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import androidx.appcompat.app.AlertDialog;
public class ImgAlertDialog {
public static void showAlertImg(Activity activity, Context ctx) {
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
builder.setPositiveButton("Chiudi", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog dialog = builder.create();
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View dialogLayout = inflater.inflate(R.layout.image_dialog, null);
dialog.setView(dialogLayout);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.show();
}
}
Infine nella nostra Activity:
public class MyActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
ImageView img = findViewById(R.id.img);
img.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ImgAlertDialog.showAlertImg(MyActivity.this, MyActivity.this);
}
});
}
}
E questo il layout richiamato nel dialog (image_dialog.xml):
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<ImageView
android:id="@+id/goProDialogImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/planimetria" />
</LinearLayout>
Enjoy!
java android activity imageview alertdialog
Commentami!