图片选择器
根据老师上课布置的作业制作一个图片选择器,书上的列本是花的而我在花的基础上更换了一下
android界面布局的的代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
//android的界面布局规划
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:textColor="#cc0000"
android:textSize="50sp"
android:ellipsize="marquee"
android:focusable="true"
android:marqueeRepeatLimit="marquee_forever"
android:focusableInTouchMode="true"
android:scrollHorizontally="true"
android:text="最喜欢的港台明星"
/>
//滚动字幕跑马灯的实现代码
<ImageView
android:layout_width="180dp"
android:layout_height="180dp"
android:src="@drawable/jacky"
android:layout_gravity="center_horizontal"
android:id="@+id/imageView" />
//图片展示代码
<TextView
android:layout_width="match_parent"
android:layout_height="30dp" />
//增加一个空白布局使得图片与按钮之间距离美观
<RadioGroup
android:id="@+id/第1组"
android:layout_width="match_parent"
android:layout_height="48dp"
android:gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/zhangxueyou"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:text="张学友"
android:textSize="20sp" />
<RadioButton
android:id="@+id/liudehua"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:text="刘德华"
android:textSize="20sp" />
<RadioButton
android:id="@+id/liming"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:text="黎明"
android:textSize="20sp" />
</RadioGroup>
使用一个RadioGroup单选组合框把RadioButton框起来。这样实现了单选效果
<RadioGroup
android:id="@+id/第2组"
android:layout_width="wrap_content"
android:layout_height="48dp"
android:layout_gravity="center"
android:orientation="horizontal">
<RadioButton
android:id="@+id/guofuc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:text="郭富城"
android:textSize="20sp" />
<RadioButton
android:id="@+id/sunyaowei"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:text="孙耀威"
android:textSize="20sp" />
<RadioButton
android:id="@+id/linzhiying"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:text="林志颖"
android:textSize="20sp" />
</RadioGroup>
</LinearLayout>
//使用俩个RadioGroup才能实现俩个并排按钮的效果,和上面的用法一样把RadioButon框起来实现俩行每行三个按钮的控制显示
界面的实现如下列图片显示所示
*我没有按照书上的例题所写,稍加改了一下
选择器所需的图片
*将所需的图片放于一个drawable文件夹中
*在drawable中建一个File用来编写所需全部图片代码代入
<level-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/zhangxueyou"
android:maxLevel="0"/>
<item
android:drawable="@drawable/liudehua"
android:maxLevel="1"/>
<item
android:drawable="@drawable/liming"
android:maxLevel="2"/>
<item
android:drawable="@drawable/guofucheng"
android:maxLevel="3"/>
<item
android:drawable="@drawable/sunyaowei"
android:maxLevel="4"/>
<item
android:drawable="@drawable/linzhiying"
android:maxLevel="5"/>
</level-list>
java的代码实现
package cn.edu.niit.tupian;
import android.os.Process;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView gundong;
private ImageView tupian;
private RadioGroup diyizu;
private RadioButton pai1;
private RadioButton pai2;
private RadioButton pai3;
private RadioGroup dierzu;
private RadioButton pai4;
private RadioButton pai5;
private RadioButton pai6;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tupian=(ImageView)findViewById(R.id.imageView);
diyizu=(RadioGroup)findViewById(R.id.第1组);
pai1=(RadioButton)findViewById(R.id.zhangxueyou);
pai2=(RadioButton)findViewById(R.id.liudehua);
pai3=(RadioButton)findViewById(R.id.liming);
dierzu=(RadioGroup)findViewById(R.id.第2组);
pai4=(RadioButton)findViewById(R.id.guofuc);
pai5=(RadioButton)findViewById(R.id.sunyaowei);
pai6=(RadioButton)findViewById(R.id.linzhiying);
//给对应的android在java里加个id
pai1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pai1.isChecked()) {
tupian.setImageResource(R.drawable.zhangxueyou);
diyizu.clearCheck();
}
}
});
pai2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pai2.isChecked()) {
tupian.setImageResource(R.drawable.liudehua);
diyizu.clearCheck();
}
}
});
pai3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pai3.isChecked()) {
tupian.setImageResource(R.drawable.liming);
diyizu.clearCheck();
}
}
});
//第一组每个RadioButton都上一个diyizu.clearCheck()语句用来实现消除单选按钮
pai4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pai4.isChecked()) {
tupian.setImageResource(R.drawable.guofucheng);
dierzu.clearCheck();
}
}
});
pai5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pai5.isChecked()) {
tupian.setImageResource(R.drawable.sunyaowei);
dierzu.clearCheck();
}
}
});
pai6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (pai6.isChecked()) {
tupian.setImageResource(R.drawable.linzhiying);
dierzu.clearCheck();
}
}
});
//第二组每个RadioButton都上一个dierzu.clearCheck()语句用来实现消除单选按钮
}
}
完成之后实现了后的图片展示