Ham*_*man 1 java android android-imageview
我创建了一个方法,可以从 Drawable 文件夹加载图像,该方法工作正常,但是当我尝试从URL加载图像并将其设置在我的自定义布局的 Imageview 上时,它仅返回:
java.lang.IllegalArgumentException: Target must not be null.
Run Code Online (Sandbox Code Playgroud)
我的Java代码是:
public void CustomDialogLoadImage() {
Dialog dialog = new Dialog(this);
ImageView FF_ReceiptImage = (ImageView) dialog.findViewById(R.id.FF_ReceiptImage);
Picasso.with(ConveyanceAmtUpdateApprove.this).load("http://i.imgur.com/DvpvklR.png").into(FF_ReceiptImage);
dialog.setContentView(R.layout.custom_dialogbox_image);
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
我的自定义对话框是:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:id="@+id/FF_ReceiptImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:src="@drawable/mobile_sales_img"
android:layout_gravity="center"
android:background="@drawable/border"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了可能的方法来解决这个问题,但它已经解决了,请帮助我......
当我再检查一遍后,我在第四行看到了奇怪的东西。
尝试这个
public void CustomDialogLoadImage() {
Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.custom_dialogbox_image);
ImageView FF_ReceiptImage = (ImageView) dialog.findViewById(R.id.FF_ReceiptImage);
Picasso.with(ConveyanceAmtUpdateApprove.this).load("http://i.imgur.com/DvpvklR.png").into(FF_ReceiptImage);
dialog.show();
}
Run Code Online (Sandbox Code Playgroud)
或者你必须在 View 中执行它,它已经先膨胀了,这是示例代码
public class ImageDialog extends DialogFragment {
public static final String ARG_IMAGE_URI = "arg_image_uri";
public static final String ARG_IMAGE_NAME = "arg_image_name";
public static final String ARG_IMAGE_ID_CHANNEL = "arg_image_id_channel";
public ImageDialog(){ // if no argument you can use empty constructor }
public static ImageDialog getInstance(String uriStr, String imageName, int idChannel){
ImageDialog imageDialog = new ImageDialog();
Bundle bundle = new Bundle();
bundle.putString(ARG_IMAGE_URI, uriStr);
bundle.putString(ARG_IMAGE_NAME, imageName);
bundle.putInt(ARG_IMAGE_ID_CHANNEL, idChannel);
imageDialog.setArguments(bundle);
return imageDialog;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
// inflate first with your own layout dialog
return inflater.inflate(R.layout.popup_image_dialog, container, false);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
// Look this part
ImageView imageView = view.findViewById(R.id.popup_image);
//-------------
Bundle bundle = getArguments();
if(bundle != null){
String name = bundle.getString(ARG_IMAGE_NAME);
getDialog().setTitle(name);
String imageUri = bundle.getString(ARG_IMAGE_URI);
int idChannel = bundle.getInt(ARG_IMAGE_ID_CHANNEL);
if(idChannel == 0){
Picasso.with(getContext())
.load(new File(imageUri))
.into(imageView);
}else {
Picasso.with(getContext())
.load(imageUri)
.into(imageView);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
并调用此对话框执行此操作
ImageDialog dialog = ImageDialog.getInstance(item.getImageUrl(), item.getName(), 1);
dialog.show(fragmentManager, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |