android - My layout is crashed after Picasso loads images [UPDATED] -
i'm trying build customized image layout looks following, 4 a
's indicate 1 imageview
.
aabc aade
when tried draw layout default src
attributes, or when put placeholder
options on picasso, layout rendered without problem. however, while picasso gradually lazy-loads each image, layout crashed this. (the space below a
blank space.)
abc de
how can maintain original layout picasso's lazy loading? customsquareimageview
custom class extends imageview
draw squared imageview.
partoflayout.xml
<linearlayout android:id="@+id/set_profile_profile_photos_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:baselinealigned="false"> <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal"> <customsquareimageview android:id="@+id/set_profile_profile_photos_first" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaletype="centercrop" android:src="@drawable/profile" /> </linearlayout> <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <customsquareimageview android:id="@+id/set_profile_profile_photos_second" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> <customsquareimageview android:id="@+id/set_profile_profile_photos_third" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> </linearlayout> <linearlayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <customsquareimageview android:id="@+id/set_profile_profile_photos_fourth" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> <customsquareimageview android:id="@+id/set_profile_profile_photos_fifth" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> </linearlayout> </linearlayout> </linearlayout>
partoffragment.java
@override public void onviewcreated(view view, @nullable bundle savedinstancestate) { super.onviewcreated(view, savedinstancestate); try { jsonarray profilephotos = new jsonarray(mprofile.getprofileimages()); if (!profilephotos.get(0).tostring().isempty()) { picasso.with(getactivity()).load(profilephotos.get(0).tostring()). placeholder(r.drawable.profile).into(mprofilephotofirst); } } catch (jsonexception e) { e.printstacktrace(); } }
updated
the answer author here using .fit().centercrop()
placeholder
solve problem "in end", in process picasso loading images, layout temporarily crashed because each image in different sizes. (after loads image successfully, layout looks good.)
how can load images without crashing layout in middle? want loaded images not disturb layout inserted directly layout centercrop
state.
because used linearlayout
s image frame, had set layout_width
of linearlayout
s match_parent
, not wrap_content
or 0dp
android studio suggested.
my new xml looks this.
newpartoflayout.xml
<linearlayout android:id="@+id/set_profile_profile_photos_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:baselinealigned="false"> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="horizontal"> <customsquareimageview android:id="@+id/set_profile_profile_photos_first" android:layout_width="wrap_content" android:layout_height="wrap_content" android:scaletype="centercrop" android:src="@drawable/profile" /> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:orientation="vertical"> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content"> <customsquareimageview android:id="@+id/set_profile_profile_photos_second" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> <customsquareimageview android:id="@+id/set_profile_profile_photos_third" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> </linearlayout> <linearlayout android:layout_width="match_parent" android:layout_height="wrap_content"> <customsquareimageview android:id="@+id/set_profile_profile_photos_fourth" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> <customsquareimageview android:id="@+id/set_profile_profile_photos_fifth" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:scaletype="centercrop" android:src="@drawable/profile" /> </linearlayout> </linearlayout> </linearlayout>
Comments
Post a Comment