Android 使用四个图片做画笔并按照顺序排列
时间: 2023-09-15 07:19:39 浏览: 187
好的,实现这个功能需要以下步骤:
1. 在布局文件中添加四个 ImageView,分别用于显示四个不同的画笔图片。可以使用 LinearLayout 或者 RelativeLayout 等布局容器进行排列。例如:
```
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/pen1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pen1" />
<ImageView
android:id="@+id/pen2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pen2" />
<ImageView
android:id="@+id/pen3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pen3" />
<ImageView
android:id="@+id/pen4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/pen4" />
</LinearLayout>
```
2. 在 Java 代码中获取四个 ImageView 的实例,并设置它们的点击事件。在点击事件中,记录当前选中的画笔图片,并根据顺序设置下一个要显示的画笔图片。例如:
```
public class MainActivity extends AppCompatActivity {
private ImageView pen1, pen2, pen3, pen4;
private int selectedIndex = 0;
private int[] penIds = new int[]{R.drawable.pen1, R.drawable.pen2, R.drawable.pen3, R.drawable.pen4};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pen1 = findViewById(R.id.pen1);
pen2 = findViewById(R.id.pen2);
pen3 = findViewById(R.id.pen3);
pen4 = findViewById(R.id.pen4);
pen1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedIndex = 0;
updateSelectedPen();
}
});
pen2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedIndex = 1;
updateSelectedPen();
}
});
pen3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedIndex = 2;
updateSelectedPen();
}
});
pen4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectedIndex = 3;
updateSelectedPen();
}
});
}
private void updateSelectedPen() {
// 设置当前选中的画笔图片
ImageView selectedPen = null;
switch (selectedIndex) {
case 0:
selectedPen = pen1;
break;
case 1:
selectedPen = pen2;
break;
case 2:
selectedPen = pen3;
break;
case 3:
selectedPen = pen4;
break;
}
selectedPen.setImageDrawable(getResources().getDrawable(R.drawable.selected_pen));
// 设置下一个要显示的画笔图片
int nextIndex = (selectedIndex + 1) % penIds.length;
ImageView nextPen = null;
switch (nextIndex) {
case 0:
nextPen = pen1;
break;
case 1:
nextPen = pen2;
break;
case 2:
nextPen = pen3;
break;
case 3:
nextPen = pen4;
break;
}
nextPen.setImageDrawable(getResources().getDrawable(penIds[nextIndex]));
// 恢复之前选中的画笔图片
selectedPen.setImageDrawable(getResources().getDrawable(penIds[selectedIndex]));
}
}
```
在这个例子中,我们使用一个 `selectedIndex` 变量记录当前选中的画笔图片的下标,使用一个 `penIds` 数组保存四个不同的画笔图片的资源 ID。当用户点击某个画笔图片时,我们根据点击的下标更新 `selectedIndex`,并调用 `updateSelectedPen()` 方法更新显示。在 `updateSelectedPen()` 方法中,我们根据 `selectedIndex` 更新当前选中的画笔图片,并根据顺序设置下一个要显示的画笔图片。注意,我们需要在设置下一个画笔图片之前,先将当前选中的画笔图片恢复到原来的状态。
阅读全文