在我问这个问题之前。他们说添加方法。我添加但是如何给出click事件icon0。对我来说仍然是个问题..
并且这些图标不在xml中。它们位于drawable文件夹中。 这是给我们使用它的方法
这是我的尝试
package com.myproject.gama;
import java.util.Arrays;
import com.digitalaria.gama.wheel.Wheel;
import com.digitalaria.gama.wheel.WheelAdapter;
import android.app.Activity;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;
import android.view.View.*;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.util.Log;
public class SampleWheelActivity extends Activity {
private static final String TAG = SampleWheelActivity.class.getSimpleName();
private Wheel wheel;
public WheelAdapter<Adapter> adapter;
private Resources res;
public int[] icons = {
R.drawable.icon1, R.drawable.icon0 , R.drawable.icon2};
ImageView t;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
//first example:I try onitemclickListenner but I could not work again click event on icon1
/* setListAdapter(new ArrayAdapter(this, R.layout.main ,icons[1] ));
ListView listView = getListView();
listView.setTextFilterEnabled(true);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),"hahhaa", Toast.LENGTH_SHORT).show();
}
});
*/
}
private void init() {
res = getApplicationContext().getResources();
wheel = (Wheel) findViewById(R.id.wheel);
wheel.setItems(getDrawableFromData(icons));
wheel.setWheelDiameter(400);
//I try this new
wheel.setOnItemClickListener(new WheelAdapter.OnItemClickListener(){
@Override
public void onItemClick(WheelAdapter<?> parent, View view,
int position, long id) {
//how can I reach icon1 ?
//I try it according to Ȃŵåiṩ ĸîŋg answer but still I can not reach icon1
String selected;
selected = parent.getItemAtPosition(icons.length + position).toString();
if( selected.equals("icon0") ){
Toast.makeText(getApplicationContext(), ""+"icon0", Toast.LENGTH_SHORT).show();
}
else if( selected.equals("icon1")){
Toast.makeText(getApplicationContext(), ""+"icon1", Toast.LENGTH_SHORT).show();
}
else if( selected.equals("icon2")){
Toast.makeText(getApplicationContext(), ""+"icon2", Toast.LENGTH_SHORT).show();
}
}});
}
private Drawable[] getDrawableFromData(int[] data) {
Drawable[] ret = new Drawable[data.length];
for (int i = 0; i < data.length; i++) {
ret[i] = res.getDrawable(data[i]);
}
return ret;
}
//I try it but how can I give clickevent icon1.. when click icon1 it should go other page.
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.icon1);
//how can I do when I click this icon1 , it is go other page ???
// how can do give click action
// how should I fill this method
}
}
这是我的xml文件,xml上没有id图标。他们在drawable文件夹..
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@drawable/cell_bg"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, GAMA!" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="500dp"
android:orientation="vertical"
android:background="@drawable/belirtec9_2bg"
android:paddingTop="10px"
>
<com.digitalaria.gama.wheel.Wheel
android:id="@+id/wheel"
android:paddingTop="10px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"/>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:3)
试试这个:
wheel.setOnItemClickListener(new WheelAdapter.OnItemClickListener() {
@Override
public void onItemClick(WheelAdapter<?> parent, View view, int position, long id) {
// Here I am using other activities to be opened on item press,
// you can use any other action which you like.
if (position == 0) {
// First icon is pressed
Intent intent = new Intent(context, MyNewClass.class);
startActivity(intent);
} else if (position == 1) {
// Second icon is pressed
Intent intent = new Intent(context, MySecondClass.class);
startActivity(intent);
}
}
});
答案 1 :(得分:1)
此代码仅在项目上添加圈子:
wheel.setOnItemClickListener(new WheelAdapter.OnItemClickListener() {
@Override
public void onItemClick(WheelAdapter<?> parent, View view, int position, long id) {
ImageView v = (ImageView) parent.getItemAtPosition(position);
Drawable pd = (Drawable) v.getDrawable();
Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE);
//TODO: Set Color and width of circle
paint.setColor(Color.BLUE);
paint.setStrokeWidth(4);
Bitmap mutableBitmap = Bitmap.createBitmap(((BitmapDrawable)pd).getBitmap()).copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(mutableBitmap);
canvas.drawCircle(((BitmapDrawable)pd).getBitmap().getWidth()/2, ((BitmapDrawable)pd).getBitmap().getHeight()/2, 30, paint);
v.setImageBitmap(mutableBitmap);
}
});