如何使用 MainActivity 将图像设置为不同布局的 ImageView

How to set an image to ImageView of different layout using MainActivity

我正在尝试设置不同布局的ImageView。我尝试使用 LayoutInflator 来初始化 ImageView 也确保 ImageView 有一个图像(img.getDrawable() returns true)但是没有显示静止图像。

MainActivity

public class MainActivity extends AppCompatActivity {
ImageView img;


@RequiresApi(api = Build.VERSION_CODES.M)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View v = inflater.inflate(R.layout.dialog_success_booking, null);
    img = (ImageView) v.findViewById(R.id.img_2);
    
     img.setImageResource(R.drawable.ic_success_circle_green_72dp);
    

        new SwipeDismissDialog.Builder(this)
                .setLayoutResId(R.layout.dialog_success_booking)
                .build()
                .show();
        if(img.getDrawable()==null)
            Toast.makeText(this,"Image doesn't exits",Toast.LENGTH_LONG).show();
        else {
            Toast.makeText(this, "Image exits", Toast.LENGTH_LONG).show();
            img.setImageResource(R.drawable.ic_success_circle_green_56dp);
            
    }
}

Dialog_Success_Booking.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="@drawable/dialog_add_user_background"
android:gravity="center"
android:orientation="vertical"
android:padding="16dp">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp"
    android:text="dialog_success_title"
    android:textAppearance="@style/TextAppearance.AppCompat.Medium" />

<ImageView
    android:id="@+id/img_2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
  />

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Button" />
</LinearLayout>

这里有两件事,我只是快速地用谷歌搜索了图书馆,据我所知,这是你可以做的。您可以通过视图而不是布局资源来设置对话框。



SwipeDismissDialog dialog = new SwipeDismissDialog.Builder(this)
                .setLayoutResId(R.layout.dialog_success_booking)
                .build()
                .show();
    

img = (ImageView) dialog.findViewById(R.id.img_2);
    btn = dialog.findViewById(R.id.button);
    img.setImageResource(R.drawable.ic_success_circle_green_72dp);
    btn.setText("Download");

我们需要存储对话框引用,显示它,然后使用它并findViewById进行更改。

其次,将编译替换为实现。这只是一般性建议

implementation'com.github.andreilisun:swipedismissdialog:0.1'