使用XML布局文件和java代码共同控制UI界面做一个简易图片浏览器
photo.xml代码如下:
<span style="font-family:Courier New;font-size:14px;"><strong><?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <Button android:text="上一张" android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <Button android:id="@+id/bt2" android:text="下一张" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> <LinearLayout android:id="@+id/layout1" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> </LinearLayout> </LinearLayout></strong></span>
<strong><span style="font-family:Courier New;font-size:14px;">package com.example.lenovo.photobrowse; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; public class MainActivity extends AppCompatActivity { //图片资源 private int[] image = {R.drawable.item1,R.drawable.item2,R.drawable.item3,R.drawable.item4,R.drawable.item5,R.drawable.item6,R.drawable.item7,R.drawable.item8,R.drawable.item9,R.drawable.item10,R.drawable.item11,R.drawable.item12}; //存放图片的下标 private int current = 0; private Button bt1; private Button bt2; private LinearLayout mLinearLayout1; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.photo); setTitle("使用XML布局文件和java代码共同控制UI界面"); //初始化LinearLayout和按钮 mLinearLayout1 = (LinearLayout)findViewById(R.id.layout1); bt1 = (Button) findViewById(R.id.bt1); bt2 = (Button)findViewById(R.id.bt2); final ImageView imageView = new ImageView(this); //布局加载ImageView组件 mLinearLayout1.addView(imageView); //ImageView加载第一张图片 imageView.setImageResource(image[current]); //imageView的点击事件 imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (current >= image.length - 1) { current = -1; } imageView.setImageResource(image[++current]); } }); //按钮点击事件 bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(current<=0){ current = 1; Toast.makeText(MainActivity.this,"图片浏览完毕",Toast.LENGTH_SHORT).show(); } imageView.setImageResource(image[--current]); } }); bt2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(current>=image.length-1){ current = image.length-2; Toast.makeText(MainActivity.this,Toast.LENGTH_SHORT).show(); } imageView.setImageResource(image[++current]); } }); } }</span><span style="font-size:18px;"> </span></strong>
总结:本代码主要是用LinearLayout布局加载ImageView和tough事件来实现,图片资源大家可以自行下载,我这就不提供了。一定会有人问,ImageView放在.XML文件里不就更容易了吗,确实是这样的。我这里主要是提供一个范例,从Activityli也可以实现布局的布置。但是如果单纯使用Layout布局会显得不灵活,只使用java代码的形式又太冗杂。两者结合就很好了。本人是刚学android,故有空就写个帖子。定时更新。不当之处敬请谅解和指正。大神们可以无视。