ユーザー署名の描画が必要なアプリを開発しています。ボタンをクリックすると、ユーザーが描画する線の太さを選択できるコンテキスト メニューを表示する必要があります。線の太さが異なるコンテキストメニューを作成するのを手伝ってくれる人はいますか? つまり、コンテキスト メニューの最初の項目として最も太い線が必要で、コンテキスト メニューの最後の項目として最も太い線が必要です。私を助けてください。
質問する
231 次
1 に答える
0
ボタンのクリック時に線の太さを選択するためのコンテキスト メニューの代わりに AlertDialog を表示できます。
たとえば。
public void lineButtonClick(View v) {
Builder builder = new Builder(this);
builder.setTitle("Line Thickness");
builder.setAdapter(new LineAdapter(this), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// here you get index of clicked item in "which" parameter
}
});
builder.create().show();
}
class LineAdapter extends BaseAdapter {
// these are the line images with different thickness
int lineIds[] = {
R.drawable.line1, R.drawable.line2, R.drawable.line3, R.drawable.line4, R.drawable.line5
};
@Override
public int getCount() {
return lineIds.length;
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.raw_line, null);
holder = new ViewHolder();
holder.imgLine = (ImageView)convertView.findViewById(R.id.imgLine);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.imgLine.setImageResource(lineIds[position]);
return convertView;
}
class ViewHolder {
ImageView imgLine;
}
}
// raw_line.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imgLine"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</LinearLayout>
于 2012-05-24T06:33:10.090 に答える