Android 如何将位图从片段传递到活动?
strong text应用程序有一个包含图像的片段,当我单击将此图像设置为壁纸时,我想将图像传递给activity use Bitmap 从片段:Android 如何将位图从片段传递到活动?,android,android-fragments,bitmap,Android,Android Fragments,Bitmap,strong text应用程序有一个包含图像的片段,当我单击将此图像设置为壁纸时,我想将图像传递给activity use Bitmap 从片段: @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.infl
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_view_pager, null);
ImageView resultView = (ImageView) view.findViewById(R.id.result_image);
resultView.setDrawingCacheEnabled(true);
bitmap = resultView.getDrawingCache();
resultView.setImageResource(pageNumber);
return view;
}
当我单击设置时,要执行活动:
case R.id.setForce:
new TaskSetWallpaper(PreviewActivity.this).execute(bitmap);
break;
您可以在片段中创建一个接口,期望片段的父活动实现该接口。然后,您可以将活动强制转换到片段的
onAttach()
中的接口,并调用接口中的方法来通知事件或将数据传递给父活动
片段:
public class MyFragment extends Fragment {
private EventListener eventListener;
public interface EventListener() {
void onSetImage(Bitmap bitmap);
}
@Override
public void onAttach(Activity a) {
super.onAttach(a);
if (a instanceof EventListener) {
eventListener = (EventListener) a;
} else {
throw new UnsupportedOperationException("Parent activity should implement MyFragment.EventListener");
}
}
}
父活动:
public class ParentActivity extends AppCompatActivity implements MyFragment.EventListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
//---------
//---------
}
@Override
void onSetImage(Bitmap bitmap){
new TaskSetWallpaper(PreviewActivity.this).execute(bitmap);
}
}
您必须获取某个URL或URI,将其转换为位图并将其设置为imageview。通过接口回调将该URL/URI传递给您的活动,因为传递位图有时会导致应用程序因内存不足异常而崩溃。@Ajinkya S谢谢,您的回答帮助我更好地理解了我的问题!这对我很有帮助,当我单击设置
case R.id.setForce:new TaskSetWallpaper(PreviewActivity.this).execute(mBitmap);中断代码>