fix:
update:增加资讯列表
This commit is contained in:
2023-01-03 09:15:22 +08:00
parent 4b01f9987f
commit 39d0f0b597
8 changed files with 530 additions and 10 deletions

View File

@@ -0,0 +1,106 @@
package com.uiuios.aios.activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.target.CustomTarget;
import com.bumptech.glide.request.transition.Transition;
import com.shehuan.niv.NiceImageView;
import com.uiuios.aios.R;
import com.uiuios.aios.base.BaseActivity;
import com.uiuios.aios.bean.ArticleInfo;
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
import butterknife.BindView;
import butterknife.ButterKnife;
public class ArticleActivity extends BaseActivity {
@BindView(R.id.iv_back)
ImageView iv_back;
@BindView(R.id.tv_title)
TextView tv_title;
@BindView(R.id.tv_content)
TextView tv_content;
@BindView(R.id.iv_img)
NiceImageView iv_img;
@Override
public int getLayoutId() {
UltimateBarX.statusBar(this)
.transparent()
.colorRes(R.color.colorPrimaryDark)
.light(true)
.apply();
UltimateBarX.navigationBar(this)
.transparent()
.colorRes(R.color.colorPrimaryDark)
.light(true)
.apply();
return R.layout.activity_articl;
}
@Override
public void initView() {
ButterKnife.bind(this);
Intent intent = getIntent();
if (intent == null) {
finish();
}
ArticleInfo articleInfo = (ArticleInfo) intent.getSerializableExtra("ArticleInfo");
if (articleInfo == null) {
finish();
}
iv_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
tv_title.setText(articleInfo.getTitle());
tv_content.setText(articleInfo.getContent());
ViewTreeObserver observer = iv_img.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
ViewGroup.LayoutParams layoutParams = iv_img.getLayoutParams();
int width = iv_img.getWidth();
// layoutParams.height = width;
// iv_img.setLayoutParams(layoutParams);
}
});
Glide.with(iv_img).asBitmap().load(articleInfo.getImg()).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
int imgWidth = resource.getWidth();
int imgHeight = resource.getHeight();
iv_img.setImageBitmap(resource);
Log.e("into", "onResourceReady: width = " + imgWidth + "height = " + imgHeight);
ViewGroup.LayoutParams layoutParams = iv_img.getLayoutParams();
int width = iv_img.getWidth();
layoutParams.height = (int) (imgHeight * (1.0f * width /imgWidth ));
iv_img.setLayoutParams(layoutParams);
}
@Override
public void onLoadCleared(@Nullable Drawable placeholder) {
}
});
}
@Override
public void initData() {
}
}

View File

@@ -1,21 +1,101 @@
package com.uiuios.aios.activity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.trello.rxlifecycle4.RxLifecycle;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.trello.rxlifecycle4.android.FragmentEvent;
import com.uiuios.aios.R;
import com.uiuios.aios.adapter.ArticleAdapter;
import com.uiuios.aios.base.BaseActivity;
import com.uiuios.aios.bean.ArticleInfo;
import com.uiuios.aios.bean.BaseResponse;
import com.uiuios.aios.network.NetInterfaceManager;
import com.zackratos.ultimatebarx.ultimatebarx.java.UltimateBarX;
import java.util.List;
import butterknife.BindView;
import butterknife.ButterKnife;
import io.reactivex.rxjava3.annotations.NonNull;
import io.reactivex.rxjava3.core.Observer;
import io.reactivex.rxjava3.disposables.Disposable;
public class InfoListActivity extends BaseActivity {
@BindView(R.id.iv_back)
ImageView iv_back;
@BindView(R.id.iv1)
ImageView iv1;
@BindView(R.id.recyclerView)
RecyclerView recyclerView;
private ArticleAdapter mArticleAdapter;
@Override
public int getLayoutId() {
UltimateBarX.statusBar(this)
.transparent()
.colorRes(R.color.colorPrimaryDark)
.light(true)
.apply();
UltimateBarX.navigationBar(this)
.transparent()
.colorRes(R.color.colorPrimaryDark)
.light(true)
.apply();
return R.layout.activity_info_list;
}
@Override
public void initView() {
ButterKnife.bind(this);
mArticleAdapter = new ArticleAdapter();
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setAdapter(mArticleAdapter);
iv_back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
@Override
public void initData() {
NetInterfaceManager.getInstance().getArticleListObservable()
.compose(RxLifecycle.bindUntilEvent(lifecycleSubject, ActivityEvent.DESTROY))
.subscribe(new Observer<BaseResponse<List<ArticleInfo>>>() {
@Override
public void onSubscribe(@NonNull Disposable d) {
Log.e("getArticle", "onSubscribe: ");
}
@Override
public void onNext(@NonNull BaseResponse<List<ArticleInfo>> listBaseResponse) {
Log.e("getArticle", "onNext: " + listBaseResponse);
List<ArticleInfo> articleInfoList = listBaseResponse.data;
if (articleInfoList != null && articleInfoList.size() != 0) {
iv1.setVisibility(android.view.View.GONE);
mArticleAdapter.setArticleBeanList(articleInfoList);
} else {
iv1.setVisibility(android.view.View.VISIBLE);
}
}
@Override
public void onError(@NonNull Throwable e) {
Log.e("getArticle", "onError: " + e.getMessage());
}
@Override
public void onComplete() {
Log.e("getArticle", "onComplete: ");
}
});
}
}