ঠিক আছে, আমি চারপাশে পড়া এবং সন্ধান করা হয়েছে, এবং এখন এটি বের করার চেষ্টা করে প্রাচীরের বিরুদ্ধে মাথা ঘুরাচ্ছি। আমার এখন পর্যন্ত যা আছে তা এখানে:
package com.pockdroid.sandbox;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.widget.ImageView;
public class ShadowImageView extends ImageView {
private Rect mRect;
private Paint mPaint;
public ShadowImageView(Context context)
{
super(context);
mRect = new Rect();
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setShadowLayer(2f, 1f, 1f, Color.BLACK);
}
@Override
protected void onDraw(Canvas canvas)
{
Rect r = mRect;
Paint paint = mPaint;
canvas.drawRect(r, paint);
super.onDraw(canvas);
}
@Override
protected void onMeasure(int w, int h)
{
super.onMeasure(w,h);
int mH, mW;
mW = getSuggestedMinimumWidth() < getMeasuredWidth()? getMeasuredWidth() : getSuggestedMinimumWidth();
mH = getSuggestedMinimumHeight() < getMeasuredHeight()? getMeasuredHeight() : getSuggestedMinimumHeight();
setMeasuredDimension(mW + 5, mH + 5);
}
}
পরিমাপের "+5" অস্থায়ী হিসাবে রয়েছে; আমি যা বুঝতে পেরেছি সে থেকে ড্রপ শেডো ক্যানভাসে যুক্ত হওয়া আকার নির্ধারণ করতে আমার কিছু গণিত করা দরকার, তাই না?
তবে আমি যখন এটি ব্যবহার করি:
public View getView(int position, View convertView, ViewGroup parent) {
ShadowImageView sImageView;
if (convertView == null) {
sImageView = new ShadowImageView(mContext);
GridView.LayoutParams lp = new GridView.LayoutParams(85, 85);
sImageView.setLayoutParams(lp);
sImageView.setScaleType(ImageView.ScaleType.CENTER);
sImageView.setPadding(5,5,5,5);
} else {
sImageView = (ShadowImageView) convertView;
}
sImageView.setImageBitmap(bitmapList.get(position));
return sImageView;
}
আমার ইমেজভিউতে, আমি যখন প্রোগ্রামটি চালাচ্ছি তখনও আমি একটি সাধারণ চিত্র দেখুন iew
কোন চিন্তা? ধন্যবাদ
সম্পাদনা: সুতরাং আমি রোমানগুয়ের সাথে আইআরসি চ্যানেলে কিছু লোকের সাথে কথা বললাম এবং আমি এখন এটি নীচের কোড সহ সরল আয়তক্ষেত্রাকার চিত্রগুলির জন্য কাজ করছি। এটি এখনও আমার বিটম্যাপের স্বচ্ছতার দিকে ছায়াটি আঁকবে না, সুতরাং আমি এখনও এটি নিয়ে কাজ করছি।
@Override
protected void onDraw(Canvas canvas)
{
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.omen);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setShadowLayer(5.5f, 6.0f, 6.0f, Color.BLACK);
canvas.drawColor(Color.GRAY);
canvas.drawRect(50, 50, 50 + bmp.getWidth(), 50 + bmp.getHeight(), paint);
canvas.drawBitmap(bmp, 50, 50, null);
}