:
は、ここで私は、レイアウト内で動的な画像ビューを追加してい私のコードです。このような何か:。
public class DeletableImageView extends LinearLayout {
private ImageView mImage;
private Button mButton;
DeletableImageListener mListener
public DeletableImageView(Context context) {
super(context);
init(context);
}
public DeletableImageView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public DeletableImageView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context);
}
private void init(Context context) {
setOrientation(LinearLayout.VERTICAL);
inflate(context, R.layout.deletable_image, this);
initViews();
}
private void initViews() {
mImage= (ImageView) findViewById(R.id.image);
mButton= (Button) findViewById(R.id.delete_button);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
if (mListener != null) {
mListener.deleteMe(DeletableImageView.this);
}
}
}
}
public void setListener(DeleteableImageListener listener) {
mListener = listener;
}
public interface DeletableImageListener {
void deleteMe(DeletableImageView me);
}
public void setImage(Drawable drawable) {
mImage.setBackground(drawable);
}
}
R.layout.deletable_image
は、ルート要素として<merge>
と、通常のXMLレイアウト(DeletableImageViewはすでにのLinearLayoutであるため、マージ、タグ内のあなたはImageViewのとボタンを持っている
<merge xmlns="...">
<ImageView android:id="@+id/image" .../>
<Button android:id="@+id/delete_button" .../>
</merge>
。あなたは再びカスタムコンポーネントを削除することができますので、あなたのコードで
あなたは、コールバックとしてリスナーをImageViewのを追加しますが、カスタムコンポーネントと設定しないでください。
RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl);
final DeletableImageView div = new DeletableImageView(this);
div.setImage(...); // add this method to DeletableImageView
div.setListener(this);
// either implement these in your custom component or directly set it in the <ImageView> in R.layout.deletable_image
div.setScaleType(...);
div.setPadding(2, 2, 2, 2);
rl.addView(div);
最後のステップはdeleteMe(DeletableImageView me)
を実装することです。あなたはあなたのRelativeLayoutへの参照を保持しなければならず、それは単に呼び出して動作するはずですrl.removeView(me);
達成したいことを明確にすることはできますか?それは少し不明です。 – Shaishav
こんにちはShaishav、実際に私は画像に絵文字を動的に追加していますが、その絵文字の削除オプションも追加する必要があります。ユーザーは絵文字を追加することができ、不要な場合は削除することもできます。 –
また、各絵文字はイメージの周りを移動することができますので、絵文字の移動や添付アイコンの移動も必要です。 –