java如何在单击CardView和RecyclerView时打开全尺寸图像
当我点击CardView时,我试图打开一个全尺寸图像。我已经设法打开了新的活动,但不知道如何在其中显示图像
时事通讯活动。java
public class NewsletterActivity extends AppCompatActivity {
List<NewsletterAdapter> NewsletterAdapter1;
RecyclerView recyclerView;
RecyclerView.LayoutManager recyclerViewlayoutManager;
RecyclerView.Adapter recyclerViewadapter;
String GET_JSON_DATA_HTTP_URL =
"http://academypk.info/eleganceschool/jsonfiles/getnewsletter.php";
String JSON_IMAGE_TITLE_NAME = "quarter";
String JSON_YEAR = "year";
String JSON_IMAGE_URL = "path";
JsonArrayRequest jsonArrayRequest ;
RequestQueue requestQueue ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_newsletter);
NewsletterAdapter1 = new ArrayList<>();
recyclerView = (RecyclerView) findViewById(R.id.recyclerview1);
recyclerView.setHasFixedSize(true);
recyclerViewlayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(recyclerViewlayoutManager);
JSON_DATA_WEB_CALL();
}
public void JSON_DATA_WEB_CALL(){
jsonArrayRequest = new JsonArrayRequest(GET_JSON_DATA_HTTP_URL,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
JSON_PARSE_DATA_AFTER_WEBCALL(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonArrayRequest);
}
public void JSON_PARSE_DATA_AFTER_WEBCALL(JSONArray array){
for(int i = 0; i<array.length(); i++) {
NewsletterAdapter NewsletterAdapter2 = new NewsletterAdapter();
JSONObject json = null;
try {
json = array.getJSONObject(i);
NewsletterAdapter2.setImageTitleName(json.getString(JSON_IMAGE_TITLE_NAME));
NewsletterAdapter2.setYear(json.getString(JSON_YEAR));
NewsletterAdapter2.setImageServerUrl(json.getString(JSON_IMAGE_URL));
} catch (JSONException e) {
e.printStackTrace();
}
NewsletterAdapter1.add(NewsletterAdapter2);
}
recyclerViewadapter = new
NewsletterRecyclerViewAdapter(NewsletterAdapter1, this);
recyclerView.setAdapter(recyclerViewadapter);
}
}
。java
public class NewsletterAdapter {
public String ImageServerUrl;
public String ImageTitleName;
public String year;
public String getImageServerUrl() {
return ImageServerUrl;
}
public void setImageServerUrl(String imageServerUrl) {
this.ImageServerUrl = imageServerUrl;
}
public String getImageTitleName() {
return ImageTitleName;
}
public void setImageTitleName(String ImageTitleName) {
this.ImageTitleName = ImageTitleName;
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
}
时事通讯回收服务适配器。java
public class NewsletterRecyclerViewAdapter extends
RecyclerView.Adapter<NewsletterRecyclerViewAdapter.ViewHolder> {
Context context;
List<NewsletterAdapter> getNewsletterAdapter;
ImageLoader imageLoader1;
public NewsletterRecyclerViewAdapter(List<NewsletterAdapter>
getNewsletterAdapter, Context context){
super();
this.getNewsletterAdapter = getNewsletterAdapter;
this.context = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.newsletter_recyclerview_items, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder Viewholder, int position) {
NewsletterAdapter getNewsletterAdapter1 = getNewsletterAdapter.get(position);
imageLoader1 = ServerImageParseAdapter.getInstance(context).getImageLoader();
imageLoader1.get(getNewsletterAdapter1.getImageServerUrl(),
ImageLoader.getImageListener(
Viewholder.networkImageView,//Server Image
R.mipmap.ic_launcher,//Before loading server image the default showing image.
安卓.R.drawable.ic_dialog_alert //Error image if requested image dose not found on server.
)
);
Viewholder.networkImageView.setImageUrl(getNewsletterAdapter1.getImageServerUrl(), imageLoader1);
Viewholder.ImageTitleNameView.setText(getNewsletterAdapter1.getImageTitleName());
Viewholder.YearView.setText(getNewsletterAdapter1.getYear());
}
@Override
public int getItemCount() {
return getNewsletterAdapter.size();
}
class ViewHolder extends RecyclerView.ViewHolder{
public TextView ImageTitleNameView;
public TextView YearView;
public NetworkImageView networkImageView ;
public ViewHolder(View itemView) {
super(itemView);
ImageTitleNameView = (TextView) itemView.findViewById(R.id.textView_item) ;
YearView = (TextView) itemView.findViewById(R.id.textView_item1) ;
networkImageView = (NetworkImageView) itemView.findViewById(R.id.VollyNetworkImageView1) ;
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), SecondPage.class);
v.getContext().startActivity(intent);
Toast.makeText(v.getContext(), "Image not found", Toast.LENGTH_SHORT).show();
}
});
}
}
}
ServerImageParseAdapter。java
public class ServerImageParseAdapter {
public static ServerImageParseAdapter SIAdapter;
public static Context context1;
public RequestQueue requestQueue1;
public ImageLoader Imageloader1;
public Cache cache1 ;
public Network networkOBJ ;
LruCache<String, Bitmap> LRUCACHE = new LruCache<String, Bitmap>(30);
private ServerImageParseAdapter(Context context) {
this.context1 = context;
this.requestQueue1 = RQ();
Imageloader1 = new ImageLoader(requestQueue1, new ImageLoader.ImageCache() {
@Override
public Bitmap getBitmap(String URL) {
return LRUCACHE.get(URL);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
LRUCACHE.put(url, bitmap);
}
});
}
public ImageLoader getImageLoader() {
return Imageloader1;
}
public static ServerImageParseAdapter getInstance(Context SynchronizedContext) {
if (SIAdapter == null) {
SIAdapter = new ServerImageParseAdapter(SynchronizedContext);
}
return SIAdapter;
}
public RequestQueue RQ() {
if (requestQueue1 == null) {
cache1 = new DiskBasedCache(context1.getCacheDir());
networkOBJ = new BasicNetwork(new HurlStack());
requestQueue1 = new RequestQueue(cache1, networkOBJ);
requestQueue1.start();
}
return requestQueue1;
}
}
第二页。java
public class SecondPage extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_page);
}
}
活动时事通讯。xml
<RelativeLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
tools:context="info.techabyte.parentsapp.newsletter.NewsletterActivity">
<TextView
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
安卓:text="@string/newsletterheading"
安卓:background="@color/colorAccent"
安卓:textSize="20sp"
安卓:textStyle="bold"
安卓:textColor="@color/colorHeadings"
安卓:gravity="center_horizontal" />
<安卓.support.v7.widget.RecyclerView
安卓:id="@+id/recyclerview1"
安卓:layout_width="fill_parent"
安卓:layout_height="fill_parent" />
</RelativeLayout>
时事通讯\u回收查看\u项目。xml
<?xml version="1.0" encoding="utf-8"?>
<安卓.support.v7.widget.CardView
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:card_view="http://schemas.安卓.com/apk/res-auto"
安卓:id="@+id/cardview1"
安卓:layout_width="match_parent"
安卓:layout_height="wrap_content"
card_view:cardElevation="3dp"
card_view:contentPadding="3dp"
card_view:cardCornerRadius="3dp"
card_view:cardMaxElevation="3dp"
>
<RelativeLayout
安卓:layout_width="fill_parent"
安卓:layout_height="wrap_content">
<com.安卓.volley.toolbox.NetworkImageView
安卓:id="@+id/VollyNetworkImageView1"
安卓:layout_width="150dp"
安卓:layout_height="100dp"
安卓:src="@mipmap/ic_launcher"/>
<TextView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:textAppearance="?安卓:attr/textAppearanceLarge"
安卓:text="@string/quarter"
安卓:id="@+id/textView_item"
安卓:layout_centerVertical="false"
安卓:layout_toRightOf="@+id/VollyNetworkImageView1"
安卓:layout_toEndOf="@+id/VollyNetworkImageView1"
安卓:layout_marginLeft="20dp"/>
<TextView
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content"
安卓:textAppearance="?安卓:attr/textAppearanceLarge"
安卓:text="@string/year"
安卓:id="@+id/textView_item1"
安卓:layout_centerVertical="false"
安卓:layout_toRightOf="@+id/VollyNetworkImageView1"
安卓:layout_toEndOf="@+id/VollyNetworkImageView1"
安卓:layout_below="@+id/textView_item"
安卓:layout_marginLeft="20dp"/>
</RelativeLayout>
</安卓.support.v7.widget.CardView>
第二页。xml
<LinearLayout xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
安卓:orientation="vertical" 安卓:layout_width="match_parent"
安卓:background="#ffffff"
安卓:layout_height="match_parent">
<com.安卓.volley.toolbox.NetworkImageView
安卓:id="@+id/VollyNetworkImageView1"
安卓:layout_width="150dp"
安卓:layout_height="100dp"
安卓:src="@mipmap/ic_launcher"/>
</LinearLayout>
# 1 楼答案
这是我放的代码
# 2 楼答案
您可以使用意图将url传递给其他活动 就像下面的粘贴代码一样,您可以在cardview中的哪个位置单击,或者在哪个单击事件中希望转到其他活动
在您的其他活动中接收图像url,这表示您的imageview活动
并使用此glide library打开图像以显示图像
在你的gradle文件中编译这个
像这样加载图像