diff --git a/app/src/main/java/com/gh/common/util/ImageUtils.kt b/app/src/main/java/com/gh/common/util/ImageUtils.kt index 9d7e100731..60448eefc4 100644 --- a/app/src/main/java/com/gh/common/util/ImageUtils.kt +++ b/app/src/main/java/com/gh/common/util/ImageUtils.kt @@ -279,13 +279,19 @@ object ImageUtils { }) } + @JvmStatic + fun display(view: SimpleDraweeView?, url: String?) { + display(view, url, true) + } + /** * 规则 width>0 Wifi/4G:x2 traffic:x1 * 第一种方案:通过LayoutParams获取 可以快速(无延迟)获取宽高,但是无法获取wrap_content和match_parent的View * 第二种方案(备用方案):有延迟,View的宽高需要在Measure过程后才能确定,能够在这里获取到正确的宽高 + * @param isAutoPlayGif 是否禁止播放动图 */ @JvmStatic - fun display(view: SimpleDraweeView?, url: String?) { + fun display(view: SimpleDraweeView?, url: String?, isAutoPlayGif: Boolean = true) { if (url.isNullOrEmpty()) return val width = view?.layoutParams?.width @@ -319,7 +325,7 @@ object ImageUtils { view?.setTag(R.string.highResImageTag, highResUrl) } - val shouldLoadAsGif = url.endsWith(".gif") && view?.getTag(R.id.tag_show_gif) != false + val shouldLoadAsGif = url.endsWith(".gif") && isAutoPlayGif && view?.getTag(R.id.tag_show_gif) != false if (shouldLoadAsGif && view?.tag == url) return diff --git a/app/src/main/java/com/gh/common/view/GameIconView.kt b/app/src/main/java/com/gh/common/view/GameIconView.kt index 3f1c207b0d..7600e2f767 100644 --- a/app/src/main/java/com/gh/common/view/GameIconView.kt +++ b/app/src/main/java/com/gh/common/view/GameIconView.kt @@ -5,6 +5,7 @@ import android.text.TextUtils import android.util.AttributeSet import android.view.View import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.ContextCompat import com.facebook.drawee.generic.RoundingParams import com.facebook.drawee.view.SimpleDraweeView import com.gh.common.util.DisplayUtils @@ -18,6 +19,7 @@ class GameIconView : ConstraintLayout { private var mCornerRadius = 10 private var mBorderColor = 0 + private var mGameIconOverlayColor = 0 private var mBorderWidth = 1 private var mFadeDuration = -1 @@ -36,11 +38,15 @@ class GameIconView : ConstraintLayout { val ta = context.obtainStyledAttributes(attrs, R.styleable.GameIconView) mCornerRadius = ta.getDimensionPixelSize(R.styleable.GameIconView_gameIconCornerRadius, DisplayUtils.dip2px(10F)) mBorderColor = ta.getColor(R.styleable.GameIconView_gameIconBorderColor, 0) + mGameIconOverlayColor = ta.getColor(R.styleable.GameIconView_gameIconOverlayColor, 0) mBorderWidth = ta.getDimensionPixelSize(R.styleable.GameIconView_gameIconBorderWidth, 1) mFadeDuration = ta.getInt(R.styleable.GameIconView_gameIconFadeDuration, -1) ta.recycle() val roundingParams = RoundingParams.fromCornersRadius(mCornerRadius.toFloat()) + if (mGameIconOverlayColor != 0) { + roundingParams.overlayColor = mGameIconOverlayColor + } if (mBorderColor != 0) { roundingParams.setBorder(mBorderColor, mBorderWidth.toFloat()) diff --git a/app/src/main/java/com/gh/gamecenter/forum/home/ForumFollowAdapter.kt b/app/src/main/java/com/gh/gamecenter/forum/home/ForumFollowAdapter.kt index d3b18c5e55..b7e827ed4c 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/home/ForumFollowAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/home/ForumFollowAdapter.kt @@ -43,7 +43,7 @@ class ForumFollowAdapter(context: Context) : BaseRecyclerAdapter { + val poster = answer.getPassVideos()[0].poster + ImageUtils.display(forumSearchHolder.binding.image, poster,false) + forumSearchHolder.binding.image.visibility = View.VISIBLE + } + answer.images.isNotEmpty() -> { + forumSearchHolder.binding.image.visibility = View.VISIBLE + ImageUtils.display(forumSearchHolder.binding.image, answer.images[0],false) + } + else -> { + forumSearchHolder.binding.image.visibility = View.GONE + } + } + forumSearchHolder.binding.content.text = answer.brief?.fromHtml() forumSearchHolder.itemView.setOnClickListener { if ("community_article" == answer.type) { diff --git a/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt b/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt index ab5f347c6b..92b148cfbf 100644 --- a/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/forum/search/ForumContentSearchListFragment.kt @@ -6,8 +6,11 @@ import android.widget.ImageView import android.widget.TextView import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView +import com.gh.common.util.DisplayUtils import com.gh.common.util.EntranceUtils import com.gh.common.util.viewModelProvider +import com.gh.common.view.divider.HorizontalDividerItemDecoration +import com.gh.common.view.divider.VerticalDividerItemDecoration import com.gh.gamecenter.R import com.gh.gamecenter.baselist.ListAdapter import com.gh.gamecenter.baselist.ListFragment @@ -53,7 +56,12 @@ class ForumContentSearchListFragment : ListFragment(R.id.tagTv) + tagTv.text = tag + + view.setOnClickListener { MtaHelper.onEvent("帖子详情", "内容区域", tag) DirectUtils.directForumDetail(tagTv.context, viewModel.detailEntity?.communityId, "帖子详情") LogUtils.uploadAccessToBbs(viewModel.detailEntity?.communityId, "文章内所属论坛") } + tagsFlexbox.addView(view) + + val params = view.layoutParams as FlexboxLayout.LayoutParams + params.setMargins(0, 5F.dip2px(), 8F.dip2px(), 5F.dip2px()) + view.layoutParams = params } else { - tagTv.setPadding(14F.dip2px(), 8F.dip2px(), 14F.dip2px(), 8F.dip2px()) + val view = LayoutInflater.from(root.context).inflate(R.layout.questionsdedit_tag_item, null) + val tagTv = view as TextView + + tagTv.text = tag + tagTv.setTextColor(R.color.theme_font.toColor()) + tagTv.setPadding(14F.dip2px(), 0, 14F.dip2px(), 0) tagTv.setRoundedColorBackground(R.color.text_EEF5FB, 5F) tagTv.setOnClickListener { MtaHelper.onEvent("帖子详情", "内容区域", tag) @@ -294,9 +295,13 @@ class ArticleDetailContentViewHolder(var binding: ItemArticleDetailContentBindin root.context.startActivity(AskColumnDetailActivity.getIntentByTag(root.context, tag, CommunityEntity(viewModel.detailEntity!!.communityId), mEntrance, "帖子详情")) } + tagsFlexbox.addView(view) + + val params = view.layoutParams as FlexboxLayout.LayoutParams + params.setMargins(0, 5F.dip2px(), 8F.dip2px(), 5F.dip2px()) + tagTv.layoutParams = params } - tagTv.layoutParams = params - tagsFlexbox.addView(view) + } } diff --git a/app/src/main/res/drawable-xxhdpi/forum_more_guide_rectangle.webp b/app/src/main/res/drawable-xxhdpi/forum_more_guide_rectangle.webp index 96afb48888..adb49da000 100644 Binary files a/app/src/main/res/drawable-xxhdpi/forum_more_guide_rectangle.webp and b/app/src/main/res/drawable-xxhdpi/forum_more_guide_rectangle.webp differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_forum_detail_search_light.png b/app/src/main/res/drawable-xxhdpi/ic_forum_detail_search_light.png index 543d35feee..2357f25c9b 100644 Binary files a/app/src/main/res/drawable-xxhdpi/ic_forum_detail_search_light.png and b/app/src/main/res/drawable-xxhdpi/ic_forum_detail_search_light.png differ diff --git a/app/src/main/res/drawable/bg_shape_f5_radius_5.xml b/app/src/main/res/drawable/bg_shape_f5_radius_5.xml new file mode 100644 index 0000000000..d7d69eef8e --- /dev/null +++ b/app/src/main/res/drawable/bg_shape_f5_radius_5.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/article_detail_fourm_tag_item.xml b/app/src/main/res/layout/article_detail_fourm_tag_item.xml new file mode 100644 index 0000000000..9fc89a179e --- /dev/null +++ b/app/src/main/res/layout/article_detail_fourm_tag_item.xml @@ -0,0 +1,28 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/community_answer_item.xml b/app/src/main/res/layout/community_answer_item.xml index f4a25f0b2a..fe2e3e3302 100644 --- a/app/src/main/res/layout/community_answer_item.xml +++ b/app/src/main/res/layout/community_answer_item.xml @@ -21,7 +21,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white" - android:paddingLeft="14dp" + android:paddingLeft="12dp" android:paddingRight="20dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" @@ -50,7 +50,7 @@ android:id="@+id/user_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="14dp" + android:layout_marginTop="12dp" app:avatar_width="32dp" app:badge_width="12dp" app:border_color="@color/transparent" @@ -71,20 +71,21 @@ android:textColor="@color/text_333333" android:textSize="14sp" app:layout_constrainedWidth="true" - app:layout_constraintBottom_toTopOf="@id/time" + app:layout_constraintBottom_toTopOf="@id/timeContainer" app:layout_constraintHorizontal_bias="0" app:layout_constraintHorizontal_chainStyle="packed" app:layout_constraintLeft_toRightOf="@id/user_icon" app:layout_constraintRight_toLeftOf="@+id/user_badge_icon" app:layout_constraintTop_toTopOf="@id/user_icon" + app:layout_constraintVertical_chainStyle="packed" tools:text="我的名字很长我的名字很长我的名字很长" /> - + app:layout_constraintTop_toBottomOf="@id/user_name"> - + + + + + android:layout_marginTop="12dp" + android:layout_marginBottom="16dp"> - + app:layout_constraintTop_toBottomOf="@+id/timeTv" />--> \ No newline at end of file diff --git a/app/src/main/res/layout/item_article_detail_comment.xml b/app/src/main/res/layout/item_article_detail_comment.xml index a98419bcd9..1a24c64aef 100644 --- a/app/src/main/res/layout/item_article_detail_comment.xml +++ b/app/src/main/res/layout/item_article_detail_comment.xml @@ -64,17 +64,14 @@ diff --git a/app/src/main/res/layout/questionsdedit_tag_item.xml b/app/src/main/res/layout/questionsdedit_tag_item.xml index 83d88b17b4..3a4dc90c97 100644 --- a/app/src/main/res/layout/questionsdedit_tag_item.xml +++ b/app/src/main/res/layout/questionsdedit_tag_item.xml @@ -1,12 +1,10 @@ \ No newline at end of file diff --git a/app/src/main/res/layout/user_search_list_item.xml b/app/src/main/res/layout/user_search_list_item.xml index aa2df41e9b..9636b5c4de 100644 --- a/app/src/main/res/layout/user_search_list_item.xml +++ b/app/src/main/res/layout/user_search_list_item.xml @@ -31,7 +31,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:roundingBorderColor="@color/black_alpha_10" - app:roundingBorderWidth="1dp" /> + app:roundingBorderWidth="0.5dp" /> diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index c299214efb..349bede2a4 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -109,6 +109,7 @@ +