
这是一个简单的问题,但使我感到困惑.我有以下第一项活动和详细信息活动.
第一次活动
第二次活动
作为第一个活动的列表视图,使用凌空下载了Json数据,我能够将标题和图像发送到details活动,但是现在我想将传递的图像设置为details活动背景图片,这是我的第一个活动代码:
主要活动:
public class MainActivity extends Activity {// Log tagprivate static final String TAG = MainActivity.class.getSimplename();// MovIEs Json urlprivate static final String url = "http://API.androIDhive.info/Json/movIEs.Json";private ProgressDialog pDialog;private List<MovIE> movIEList = new ArrayList<MovIE>();private ListVIEw ListVIEw;private Customlistadapter adapter;private static String title="Title";private static String bitmap="thumbnailUrl";@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); Intent newActivity2=new Intent(); setResult(RESulT_OK, newActivity2); ListVIEw = (ListVIEw) findVIEwByID(R.ID.List); adapter = new Customlistadapter(this, movIEList); ListVIEw.setAdapter(adapter); pDialog = new ProgressDialog(this); // Showing progress dialog before making http request pDialog.setMessage("Loading..."); pDialog.show(); // changing action bar color getActionbar().setBackgroundDrawable( new colorDrawable(color.parsecolor("#1b1b1b"))); // Creating volley request obj JsonArrayRequest movIEReq = new JsonArrayRequest(url, new Response.Listener<JsONArray>() { @OverrIDe public voID onResponse(JsONArray response) { Log.d(TAG, response.toString()); pDialog.dismiss(); // Parsing Json for (int i = 0; i < response.length(); i++) { try { JsONObject obj = response.getJsONObject(i); MovIE movIE = new MovIE(); movIE.setTitle(obj.getString("Title")); movIE.setthumbnailUrl(obj.getString("image")); movIE.setrating(((Number) obj.get("rating")) .doubleValue()); movIE.setYear(obj.getInt("releaseYear")); // Genre is Json array JsONArray genreArry = obj.getJsONArray("genre"); ArrayList<String> genre = new ArrayList<String>(); for (int j = 0; j < genreArry.length(); j++) { genre.add((String) genreArry.get(j)); } movIE.setGenre(genre); // adding movIE to movIEs array movIEList.add(movIE); } catch (JsONException e) { e.printstacktrace(); } } // notifying List adapter about data changes // so that it renders the List vIEw with updated data adapter.notifyDataSetChanged(); } }, new Response.ErrorListener() { @OverrIDe public voID one rrorResponse(VolleyError error) { if (error instanceof NoConnectionError){ Toast.makeText(getBaseContext(), "Bummer..There's No Internet connection!", Toast.LENGTH_LONG).show(); } } }); // Adding request to request queue AppController.getInstance().addToRequestQueue(movIEReq); ListVIEw.setonItemClickListener(new AdapterVIEw.OnItemClickListener() { @OverrIDe public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) { // Todo auto-generated method stub String name = ((TextVIEw) vIEw.findVIEwByID(R.ID.Title)).getText().toString(); bitmap = ((MovIE)movIEList.get(position)).getthumbnailUrl(); Intent intent = new Intent(MainActivity.this, Detail.class); intent.putExtra(Title, name); intent.putExtra("images", bitmap); startActivity(intent); } });}@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true;}}
这是“详细信息”活动:
public class Detail extends Activity{private static String Title = "Title";@OverrIDeprotected voID onCreate(Bundle savedInstanceState) { // Todo auto-generated method stub super.onCreate(savedInstanceState); setContentVIEw(R.layout.detail); getActionbar().hIDe(); Intent i = getIntent(); ImageLoader imageLoader = AppController.getInstance().getimageLoader(); String name = i.getStringExtra(Title); String bitmap = i.getStringExtra("images"); NetworkImageVIEw thumbnail = (NetworkImageVIEw) findVIEwByID(R.ID.thumbnail); thumbnail.setimageUrl(bitmap, imageLoader); TextVIEw lblname = (TextVIEw) findVIEwByID(R.ID.name_label); lblname.setText(name);}public voID onClickHandler(VIEw v){ switch(v.getID()){ case R.ID.thumbnail:startActivity(new Intent(this,MainActivity.class)); }}}
如果需要,我会上传更多代码.
Coustomlistadapter:
public class Customlistadapter extends BaseAdapter {private Activity activity;private LayoutInflater inflater;private List<MovIE> movIEItems;ImageLoader imageLoader = AppController.getInstance().getimageLoader();public Customlistadapter(Activity activity, List<MovIE> movIEItems) { this.activity = activity; this.movIEItems = movIEItems;}@OverrIDepublic int getCount() { return movIEItems.size();}@OverrIDepublic Object getItem(int location) { return movIEItems.get(location);}@OverrIDepublic long getItemID(int position) { return position;}@OverrIDepublic VIEw getVIEw(int position, VIEw convertVIEw, VIEwGroup parent) { if (inflater == null) inflater = (LayoutInflater) activity .getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (convertVIEw == null) convertVIEw = inflater.inflate(R.layout.List_row, null); if (imageLoader == null) imageLoader = AppController.getInstance().getimageLoader(); NetworkImageVIEw thumbnail = (NetworkImageVIEw) convertVIEw .findVIEwByID(R.ID.thumbnail); TextVIEw Title = (TextVIEw) convertVIEw.findVIEwByID(R.ID.Title); TextVIEw rating = (TextVIEw) convertVIEw.findVIEwByID(R.ID.rating); TextVIEw genre = (TextVIEw) convertVIEw.findVIEwByID(R.ID.genre); TextVIEw year = (TextVIEw) convertVIEw.findVIEwByID(R.ID.releaseYear); // getting movIE data for the row MovIE m = movIEItems.get(position); // thumbnail image thumbnail.setimageUrl(m.getthumbnailUrl(), imageLoader); // Title Title.setText(m.getTitle()); // rating rating.setText("rating: " + String.valueOf(m.getrating())); // genre String genreStr = ""; for (String str : m.getGenre()) { genreStr += str + ", "; } genreStr = genreStr.length() > 0 ? genreStr.substring(0, genreStr.length() - 2) : genreStr; genre.setText(genreStr); // release year year.setText(String.valueOf(m.getYear())); return convertVIEw;}}
和detail.xml
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"xmlns:tools="http://schemas.androID.com/tools"androID:layout_wIDth="wrap_content"androID:layout_height="match_parent"androID:background="#ffffff" > <com.androID.volley.toolBox.NetworkImageVIEw androID:ID="@+ID/thumbnail" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:layout_alignParenttop="true" androID:layout_centerHorizontal="true" androID:layout_margintop="42dp" tools:ignore="ContentDescription"/> <linearLayout androID:layout_wIDth="match_parent" androID:layout_height="match_parent" androID:gravity="center_horizontal" androID:orIEntation="vertical" > <TextVIEw androID:ID="@+ID/name_label" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content" androID:textSize="20sp" androID:divIDer="@color/List_divIDer" androID:divIDerHeight="1dp" /> </linearLayout> </relativeLayout>我是这方面的新手,因此我们将不胜感激.非常感谢!
解决方法:
干得好!!
内部MainActivity:
ListVIEw.setonItemClickListener(new AdapterVIEw.OnItemClickListener() { @OverrIDe public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) { // your code BitmapDrawable bd = (BitmapDrawable) ((NetworkImageVIEw) vIEw.findVIEwByID(R.ID.thumbnail)) .getDrawable(); Bitmap bitmap=bd.getBitmap(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); bd.getBitmap().compress(Bitmap.CompressFormat.PNG, 100, baos); byte[] imgByte = baos.toByteArray(); Intent intent = new Intent(MainActivity.this, Detail.class); intent.putExtra("image", imgByte); // any other extra you need to pass startActivity(intent); }}内部细节:
Bundle extras = getIntent().getExtras();byte[] b = extras.getByteArray("image");Bitmap bmp = BitmapFactory.decodeByteArray(b, 0, b.length);BitmapDrawable background = new BitmapDrawable(bmp);findVIEwByID(R.ID.root_layout).setBackgroundDrawable(background);内部detail.xml
为您的relativeLayout分配一个ID
< relativeLayout xmlns:androID =“ http://schemas.androID.com/apk/res/androID”
androID:ID =“ @ ID / root_layout”
以上是内存溢出为你收集整理的排球图像作为下一个活动背景图像全部内容,希望文章能够帮你解决排球图像作为下一个活动背景图像所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)